本文将介绍如何使用ggpubr包中的ggpar()函数简单轻松地更改ggplot2绘图参数。ggpar()可以更改的图形参数包括:
- 主标题、轴标签和图例标题
- 图例位置和外观
- 颜色
- 坐标轴范围
- 坐标轴的转换:log, sqrt
- 坐标轴刻度
- 主题
- 图形旋转
ggpubr包的安装可以参考这篇文章-->>ggpubr:快速绘制用于发表的图形。
绘制基本图形
# 绘制基本图形
p <- ggboxplot(ToothGrowth, x = "dose", y = "len",
color = "dose")
p
# 添加网格线
p + grids(linetype = "dashed")
# 添加边框线
p + border("black")
# 修改背景色
p + bgcolor("#BFD5E3") +
border("#BFD5E3")
更改标题和轴标签
修改图形标题和标签:
p2 <- ggpar(p,
title = "Box Plot created with ggpubr",
subtitle = "Length by dose",
caption = "Source: ggpubr",
xlab ="Dose (mg)",
ylab = "Teeth length",
legend.title = "Dose (mg)")
p2
使用ggpar()更改图形标题和标签的字体和外观:
ggpar(p2,
font.title = c(14, "bold.italic", "red"),
font.subtitle = c(10, "orange"),
font.caption = c(10, "orange"),
font.x = c(14, "blue"),
font.y = c(14, "#993333")
)
或者使用font()函数,也是相同的效果:
p2 +
font("title", size = 14, color = "red", face = "bold.italic")+
font("subtitle", size = 10, color = "orange")+
font("caption", size = 10, color = "orange")+
font("xlab", size = 12, color = "blue")+
font("ylab", size = 12, color = "#993333")
ggpar()函数也可以同时修改标题和标签的文本和外观:
ggpar(p, title = "Plot of length \n by dose",
xlab ="Dose (mg)", ylab = "Teeth length",
legend.title = "Dose (mg)",
font.title = c(14,"bold.italic", "red"),
font.x = c(14, "bold", "#2E9FDF"),
font.y = c(14, "bold", "#E7B800"))
注:
- font.title, font.subtitle, font.caption, font.x, font.y均是长度为3的向量,包括字体大小、样式(例如:“plain”, “bold”, “italic”, “bold.italic”)和颜色。
修改图例的位置和外观
ggpar(p,
legend = "right", legend.title = "Dose (mg)") +
font("legend.title", color = "blue", face = "bold")+
font("legend.text", color = "red")
legend参数是指定图例位置的字符型向量,可选值包括
c(“top”, “bottom”, “left”, “right”, “none”)
。如果不想显示图例,可以设置legend = “none”
。图例的位置也可由坐标位置来c(x, y)
指定。
修改调色板
分组颜色
ggpubr()函数中的palette 参数可以用于修改分组变量的颜色。可选值包括:
- 自定义调色板。例如:
c(“blue”, “red”)
或c(“#00AFBB”, “#E7B800”)
; - 灰色调色板
grey
; - brewer 调色板,如
“RdBu”, “Blues”
; - ggsci包中的科学期刊调色板,如
“npg”, “aaas”, “lancet”, “jco”, “ucscgb”, “uchicago”, “simpsons”,“rickandmorty”
。
# 使用自定义调色板
ggpar(p, palette = c("#00AFBB", "#E7B800", "#FC4E07"))
# 使用brewer 调色板
ggpar(p, palette = "Dark2" )
# 使用灰色调色板
ggpar(p, palette = "grey")
# 使用ggsci包中的科学期刊调色板
ggpar(p, palette = "npg")
或者也可以使用
color_palette()
和fill_palette()
函数:
p + color_palette("jco")
p + color_palette(c("#00AFBB", "#E7B800", "#FC4E07"))
渐变色
使用gradient_color()
和 gradient_fill()
函数可以修改渐变色:
p3 <- ggscatter(mtcars, x = "wt", y = "mpg", color = "mpg",
size = 2)
# 修改渐变色
# 单色渐变
p3 + gradient_color("red")
# 双色渐变
p3 + gradient_color(c("blue", "red"))
# 三色渐变
p3 + gradient_color(c("blue", "white", "red"))
# 使用RColorBrewer 调色板
p3 + gradient_color("RdYlBu")
相同的语法也适用于
gradient_fill()
函数:
p4 <- ggscatter(mtcars, x = "wt", y = "mpg", fill = "mpg",
size = 4, shape = 21)
p4 + gradient_fill(c("blue", "white", "red"))
更改坐标轴范围和比例
# 修改y轴范围
ggpar(p, ylim = c(0, 50))
# 将y轴比例改为log2
ggpar(p, yscale = "log2")
# 坐标轴比例格式化
ggpar(p, yscale = "log2", format.scale = TRUE)
也可以使用
xscale()
和yscale()
函数达到同样的效果:
p + yscale("log2", .format = TRUE)
自定义坐标轴文本和标签
# 修改坐标轴文本字体并旋转45度
p +
font("xy.text", size = 12, color = "blue", face = "bold") +
rotate_x_text(45)+
rotate_y_text(45)
# 移除坐标轴刻度和文本
p + rremove("ticks")+
rremove("axis.text")
图形旋转
# 水平的箱线图
p + rotate()
修改主题
ggpubr包中的默认主题为theme_pubr()
,ggtheme 参数可以修改任何ggpubr绘制的图形,可选的主题有:theme_gray(), theme_bw(), theme_minimal(), theme_classic(), theme_void(), 等。
# 灰色主题
p + theme_gray()
# 黑白主题
p + theme_bw()
# 亮色主题
p + theme_light()
p + theme_minimal()
p + theme_void()
移除ggplot元素
rremove()函数可以用来移除特定的元素。
p <- ggboxplot(ToothGrowth, x = "dose", y = "len",
ggtheme = theme_gray())
p
# 移除所有网格线
p + rremove("grid")
# 仅移除x轴网格线
p + rremove("x.grid")
网友评论