【R】ggplot2绘图技巧

Python012

【R】ggplot2绘图技巧,第1张

ggplot2|详解八大基本绘图要素

memory.limit()

memory.limit(100000)

getwd()

setwd("E:/科学论文/2018Winter_PM25年际变化_SDEI/20190315 文章绘图/Fig_2 重点区域年际变化/")

jpeg("Fig_2_Boxplot_each region_V2.jpeg",width=600,height=600)

p<-ggplot(PM_data,aes(x=region,y=PM,fill=region))+geom_boxplot()+

  theme(legend.position="none",axis.text=element_text(size=20),axis.title=element_text(size=20,face="bold")

        ,plot.title = element_text(size=20,hjust = 0.5))+

  labs(title = "(a)箱型图",x="  ",y=expression(PM[2.5]*'  ('*mu*"g /"*m^{3}*')'))

  #ylab(expression(PM[2.5]*'  ('*mu*"g /"*m^{3}*')'))+ggtitle("(a)箱型图")+xlab("  ")

p

dev.off()

getwd()

setwd("E:/科学论文/2018Winter_PM25年际变化_SDEI/20190315 文章绘图/Fig_2 重点区域年际变化/")

jpeg("Fig_2_line chart_V2.jpeg",width=600,height=600)

p<-ggplot(data=PM_data,aes(x=year,y=PM, group=region))+

  geom_line(aes(color=region),lwd=2)+

  geom_point()+

  theme(legend.position="bottom",axis.text=element_text(size=20),axis.title=element_text(size=20,face="bold")

          ,plot.title = element_text(size=20,hjust = 0.5)

        ,legend.text = element_text(size = 16, face = 'bold')

        ,legend.title=element_blank())+

  labs(title = "(b)区域年均浓度时间序列",x="  ",y=expression(PM[2.5]*'  ('*mu*"g /"*m^{3}*')'))

p

dev.off()

(1)library(patchwork)

R | ggplot拼图 —— patchwork

R小tip(六)ggplot2拼图

(2)这个效果更好

ggplot2|ggpubr进行“paper”组图合并

R 函数学习 - colorRamp() 和 colorRampPalette()

R 语言配色收集

#设置自己想要的colorbar内容

color_bar <- colorRampPalette(c("#ffffff","#c0c0c0",   "#ffff80","#d0d000",  "#00ff00","#00bb00",  "#008000"))

#带n可以设置n个颜色,做梯度

p1<-ggplot() +#一大堆其他内容

  scale_fill_gradientn(colors=color_bar(12))+ #带n可以设置n个颜色,做梯度

ggplot2 |legend参数设置,图形精雕细琢

【r<-ggplot2】修改x和y轴刻度

title: "Rfonts"

author: "wintryheart"

date: "2020/7/6"

output:

html_document:

toc: true

toc_depth: 2

number_sections: true

在windows系统中,字体集(the font family)只是一个字符串名字,必须映射到特定的windows字体。

windowsFonts() 函数,用于列出已有的字体映射,或定义新的映射。 windowsFont() 函数用于创建一个新的映射。

系统自带三个字体集名: "serif" "sans" "mono" ,分别映射 "TT Times New Roman" "TT Arial" "TT Courier New"

这些映射只有在字体风格(font face)是 1 (plain), 2 (bold), 3 (italic), or 4 (bolditalic) 时使用。

showtext 的主要优点是用户可以使用任何受支持的字体文件进行文本渲染,文本符号将被转换为多边形(用于矢量图形)或光栅图像(用于位图和屏幕图形),从而在所有平台上生成与设备无关的输出。如果您想在图形设备中使用非标准字体,此函数将非常有用。

为了使pdf()更好地显示特定的中文字体,需要调用中文字体文件,比如windows系统自带的 simkai.ttf

Cairo初始化一个新的图形设备,使用Cairo图形库进行渲染。当前能制作高质量的PNG、JPEG、TIFF位图文件、具有嵌入式字体的高分辨率PDF文件、SVG图形和PostScript文件。它还提供了X11和Windows交互式图形设备。不像其他设备,它支持所有的图形功能,包括alpha混合,抗锯齿等。

CairoX11()、CairoPNG()、CairoPDF()、CairoPS()和CairoSVG()是Cairo的简易的基本类型包装器,它们使用的参数与所替换的设备(如X11()、png()、pdf()等)相同。

但由于Cairo()更灵活,建议使用Cario()函数。

Cairo.capabilities()查看cairo包支持的所有图形格式。

注:Cairo()输出pdf图形时,必须设置dpi。没有经验,不好设置。在上例中dpi不能大于100。不如直接使用CairPDF()更为方便,不用设置dpi。

注:

https://www.rdocumentation.org/packages/customLayout/versions/0.2.0

https://mp.weixin.qq.com/s/zbp8pOQcNB4XBBF5SCg5GA

customLayout用于拼图特别方便,尤其是仪表盘布局

支持R内置的base绘图对象,ggplot2对象(与grid结合 )

Hide

”library(ggplot2)library(customLayout)

通过设置简单的数字矩阵以及对应的宽高比,可以非常方便的设置出来数字拼图

关键函数:

mat数字矩阵必须从1开始,且必须连续

其它拼图包没有的功能,非常好用

跟合并矩阵类似。分为行合并和列合并

这个功能也是其它包没有的,非常有用

关键函数:

参数lay表示大画布,参数newlay表示要嵌套进去的小画布,field表示指定要嵌套的区域编号

关键函数:

cowplot是一个ggplot2包的简单补充,意味着其可以为ggplot2提供出版物级的主题等。

更重要的是,这个包可以组合多个”ggplot2”绘制的图为一个图,并且为每个图加上例如A,B,C等标签,

这在具体的出版物上通常是要求的。 语法结构与ggplot类似,将ggplot2图作为一个对象置于 ggdraw() 中

表达式:

draw_plot(plot, x = 0, y = 0, width = 1, height = 1, scale = 1)

draw_text(text, x = 0.5, y = 0.5, size = 14, hjust = 0.5, vjust = 0.5,...)

draw_plot_label(label, x = 0, y = 1, hjust = -0.5, vjust = 1.5, size = 16, fontface = "bold", family = NULL, colour = NULL, ...)

参数解释:

grid中文翻译为网格,可将其解释为画布分割,通过设定相应的参数,从而可以任意的摆放图形

常用函数:

语法:

参数解释:

layout参数

综合例子

子母图,主要是形成局部放大的效果,既可以从整体上对比,又兼顾特别小的数据组,或特别密的数据点可以查看,而没有必要单独做2张图

<pre style="box-sizing: border-boxfont-family: Monaco, Menlo, Consolas, "Courier New", monospacefont-size: 13pxwhite-space: pre-wrapdisplay: blockpadding: 9.5pxmargin: 0px 0px 10pxline-height: 1.42857color: rgb(51, 51, 51)word-break: break-alloverflow-wrap: break-word !importantbackground-color: whiteborder: 1px solid rgb(204, 204, 204)border-radius: 4pxmax-width: 100%font-variant-numeric: normalfont-variant-east-asian: normalletter-spacing: 0.544pxtext-align: justifywidows: 1overflow: auto">## png

蝴蝶图

主要函数:

语法:

参数解释:

把绘图对象添加到列表总,并把该列表传递给 grid.arrange() 函数中的grobs参数

子母图

grid包可以画字母图

安装gridExtra包后,ggplot2中多了一个 ggplotGrob( )函数,可以创建grob对象参数