ggplot2

ggplot2绘图细节及美化技巧

调整轴题与轴标签之间的间距 geom_text()如何控制字体大小 如何给geom_hline()添加图例 保持读取csv编码正确 facet_grid() 实现多种图形并存 调整轴题与轴标签之间的间距 Increase distance between text and title on the y-axis ggplot(mpg, aes(cty, hwy)) + geom_point()+ theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0))) geom_text()如何控制字体大小 首先,geom_text()的size是按mm计量的。所以并不是跟font size一样的计量规则。所以不要混同二者的度量尺度。(参看The size in geom_text is not a font size) 其次,ggplot中字体控制的关系如下。简言之:geom_text()是单独控制字体的!!(参看:ggplot geom_text font size control) p <- p + theme(axis.text = element_text(size = 15)) # changes axis labels p <- p + theme(axis.

Latex pdf和html输出下ggplot绘图中文字体显示问题

中文字体问题总是会在时不时出来捣乱。今天就碰到了ggplot2绘图时,latex pdf输出和html网页输出显示不一致的问题(类似的 问题报告)。 问题描述 google神搜一遍,大家普遍把问题指向: 操作系统OS问题。Linux/Mac OS普遍采用UTF-8编码格式,而Windows系统则坚持GBK编码格式。因此,如果Rstudio里Rmarkdown文件用UTF-8编码,自然就会导致Windowns粉出现悲催的混乱事件。Windowns系统下还可能存在本地字体库不全的问题。 中文字体库问题。除了系统阵营的锅,中文字体本身也会给编码世界带来混乱。其实不单是中文字体,CJK字体库就是专门为了解救中文-日文-韩文字体等东亚语言字体问题的。另外就是,字体库有“真体”(TrueType Collection 字体文件 (.ttc))等字体版本。因此,latex包\usepackage{xeCJK}渲染时,可能会提示错误(类似报告1;报告2) engine或dev问题。第三个锅就是软件的问题了。其一,bookdown下默认的Latex引擎pdflatex对Unicode characters支持不好,需要改用xelatex引擎(yihuixie留爪)。其二,绘图装置dev也有小九九类似报告。最关键的是绘图装置可以自己根据需要设定,包括:dev=‘cairo_pdf’;dev=‘pdf’;dev=‘svg’(见友情提示)。 解决办法 (windowns系统)安装缺少的字体库。大概就先去看看“c:/windows/fonts”目录吧!。也可以在R中用package如 "showtext"来安装。——不说这个了,都是泪。 latex中设定header.tex的包调用。最重要的\usepackage{xeCJK},大抵如下: \usepackage{xeCJK} %\setCJKmainfont{SimSun} \setCJKmainfont{宋体} % 字体可以更换 \setCJKmonofont{simsun.ttc} % for \textsf \setmainfont{宋体} % 設定英文字型 \setromanfont{Georgia} % 字型 \setmonofont{Courier New} Rmarkdown中设定engine和dev。这个地方倒是有一个逻辑性的问题我之前一直没有弄清楚。engine设好后(如前,最好用xelatex引擎),不同输出形式(pdf、html)对绘图转置dev需求是不一样的,因此需要考虑latex_engine和dev所处的环境。这个环境不一样,控制的范围自然就不同,但大概有三个级别:a. yaml区域的全局性- output环境; b. R代码块的文档级设置;c.特定R代码块的设置。 环境1:yaml区域的全局性设置 output: bookdown::pdf_document2: latex_engine: xelatex dev: cairo_pdf 环境2:R代码块的文档级设置 {r global_options,echo=FALSE, message=FALSE} knitr::opts_chunk$set(fig.align='center', dev="cairo_pdf", echo=FALSE, fig.pos = 'H') # 环境3:特定绘图R代码块环境 {r common-get-sum,echo=FALSE, dev="cairo_pdf", message=FALSE,error=FALSE,warning=F, fig.