目录
坐标轴以及标签的相关主题
图例调整
字体类型设置
颜色相关
ggplot2如何添加带箭头的坐标轴?
标题相关主题调整
修改点图中点的大小
如何使得点的大小根据变量取值的大小来改变?
柱状图和条形图
坐标轴以及标签的相关主题
theme(
# 增大X轴标签字体大小
axis.text.x = element_text(angle = 45, hjust = 1, face = "bold", size = 12),
# 增大Y轴标签字体大小,不旋转
axis.text.y = element_text(face = "bold", size = 12),
# 增大X轴标题字体大小
axis.title.x = element_text(face = "bold", size = 14),
# 增大Y轴标题字体大小
axis.title.y = element_text(face = "bold", size = 14) ,
axis.line.y = element_blank(),# 移除 y 轴线
#增大分面标签字体大小
strip.text = element_text(face = "bold",size = 14) ,
# 调整标题字体大小和加粗 plot.title = element_text(size = 16, face = "bold"),
#修改坐标轴刻度的代码,就是那个刻度的长度和宽度
axis.ticks.length.x = unit(0.2, 'cm'),
axis.ticks.length.y = unit(0.2, 'cm'),
axis.ticks = element_line(size = 1)
)
hjust = 1表示右对齐,0.5表示居中对齐,0表示左对齐。y轴也可以设置angle,如果 axis.title.y的angle被设置为90,y轴标题就竖着显示了
图例调整
图例,分面标签字体大小,x轴和y轴的标签位置,写在theme里面
#调整图例文本大小
legend.text = element_text(face = "bold",size = 20),
#调整图例标题大小
legend.title = element_text(face = "bold",size = 20),
#去除图例标题
legend.title = element_blank(),
legend.position = "top",#图例显示在上方
legend.direction = "vertical",#图例的方向为垂直。
legend.justification = c(1,0),#图例的右上角与图形的右上角对齐
# 调整分面行标签的文本大小
就是调PBS和LR strip.text.y = element_text(size = 14, face = "bold"),
# 调整分面列标签的文本大小
strip.text.x = element_text(size = 14, face = "bold"),
#调整x轴和y轴标签的位置
axis.title.x = element_text(vjust = 0.5, hjust = 0),
axis.title.y = element_text(vjust = 0.5, hjust = 0)
调整图例颜色块(也称为图例键)的形状和大小使用代码
guides( color = guide_legend( override.aes = list( size = 6, # 图例点大小 alpha = 1, # 图例不透明 shape = 16 # 图例形状统一为实心圆 ) ) )
设置背景板和绘图区域为白色,写在theme里面就行
plot.background = element_rect(fill = "white"), # 设置绘图区域背景颜色 panel.background = element_rect(fill = "white") , # 设置面板背景颜色 panel.grid = element_blank(), # 去除网格线 这个通常要运行 panel.border = element_blank(), # 去除面板边框 这个一般不会运行,没有边框更难看 axis.line.x = element_blank(),#不显示x轴坐标轴 axis.line.y= element_blank(),#不显示y轴坐标轴
注意所有的背景以及字体的调整都要放在同一个theme中,防止覆盖原来的theme
在theme外边加这两句可以翻转坐标轴
+coord_flip()+ RotatedAxis()
字体类型设置
ggplot设置全局字体,下面两个挑一个就行
theme( text = element_text(family = "Times New Roman")#设置全局字体为Times New Roman text = element_text(family = "Arial")#设置全局字体为Arial )
去除图例写+NoLegend()
去除坐标轴写+NoAxes()
在图上加一个黑色框写
theme(panel.border = element_rect(fill = NA,color = "black",size=1.5,linetype = "solid"))
在theme后面写上+coord_cartesian(clip = "off")默认情况下,当图形元素超出绘图区域时会被裁剪掉。当设置为
"off" 时,允许图形元素绘制在绘图区域之外,这样可以避免一些元素(如标签、注释等)因为超出绘图区域而被截断,确保所有需要显示的元素都能完整呈现。
颜色相关
ggplot2绘图的时候快速更换颜色可以使用
scale_fill_brewer(palette = "Set2")
用之前首先要library(RColorBrewer)
同时可以使用代码dput(brewer.pal(9, "Set1"))来把使用的颜色打印出来
col
ggplot2如何添加带箭头的坐标轴?
#添加开放式箭头 p2 <- p1+theme(
axis.line = element_line(arrow = arrow(length = unit(0.3, "cm")),linewidth=0.8))
#添加闭合式箭头 p3 <- p1+theme(axis.line = element_line(arrow = arrow(length = unit(0.2, "cm"),type="closed"),linewidth=0.8))
#添加双向箭头 p4 <- p1+theme(axis.line.x = element_line(arrow = arrow(length = unit(0.2, "cm"), type="closed",ends="both"),linewidth=0.8),
axis.line.y = element_line(arrow = arrow(length = unit(0.2, "cm"), type="closed"),linewidth=0.8))
高分文章中坐标轴没有箭头,都是直接一根线,坐标轴是线的代码是:
axis.line = element_line(color = "black", size = 0.5)
标题相关主题调整
把下面这句写到theme里面即可使主标题居中
plot.title = element_text(hjust = 0.5, face = "bold", size = 14)
重命名标题:使用labs,这个是独立于theme的,不是在theme里面写,而是用+连接,和theme是同级的
如何设置为空就可以删除对应的标题
p2 <- p2 + labs(x = "新的X轴标题", y = "新的Y轴标题",title = "主标题")
让点图中的点随着某个变量的取值而变化,比如随着logFC的绝对值变大,点也变大,实际上就是在aes中把size赋值为某个变量就行,一定要写到aes里面,aes即美学映射
p <- p + geom_point(aes(size = abs(avg_log2FC))) + scale_size_continuous(name = "Abs Log2FC", breaks = seq(0, max(abs(deg$avg_log2FC)), by = 1), range = c(1, 5)) # 根据需要调整范围
修改点图中点的大小
p1<-p1 + geom_point(size = 5)
只要图是一个点图同时是ggplot对象就可以这样来定点的大小,比如cellchat包中的netVisual_bubble函数绘制的就是一个ggplot类型的点图,那我们就可以把这个函数绘制的图存到变量p1里面,然后使用netVisual_bubble来修改所有点的大小为5
如何使得点的大小根据变量取值的大小来改变?
只需要在aes里面写size = 某变量,就可以根据指定变量的取值来决定点的大小
如果点的大小是通过某个变量的值来改变的,我们可以人为规定点的大小的范围,避免变量取值范围过大引起的点的形状大小差异过大,调整方法为:
p1
柱状图和条形图
geom_bar(stat = "identity", position = "dodge")生成分组柱状图
geom_bar(stat = "identity", position = "stack")生成堆叠柱状图
想让条形图变成冲积图只需要在画条形图的代码中加上
geom_stratum(aes(fill = Taxon),width = 0.6)+ geom_alluvium(aes(fill = Taxon), alpha = .5)