这个方法无需旋转就可使得横轴坐标不重叠!

2021-12-08 17:59:17 浏览数 (2)

坐标轴重叠是常见的绘图问题,常规的解决方式是增加图形的宽度、降低字体大小、坐标轴文字旋转。还有 2 个新的方式,自动错位排列和隐藏重叠坐标轴。

代码语言:javascript复制
library(ggplot2)

df <- data.frame(Gene=paste0("Gene_",1:9), TPM=1:9)

ggplot(data=df, aes(x=Gene, y=TPM)) 
  geom_col()

坐标轴刻度错位排列

采用guide_axis函数。

代码语言:javascript复制
# 2行交替
ggplot(data=df, aes(x=Gene, y=TPM)) 
  geom_col()   
  scale_x_discrete(guide = guide_axis(n.dodge=2))
代码语言:javascript复制
# 3 行交替
ggplot(data=df, aes(x=Gene, y=TPM)) 
  geom_col()   
  scale_x_discrete(guide = guide_axis(n.dodge=3))

隐藏重叠的坐标轴标记

代码语言:javascript复制
ggplot(data=df, aes(x=Gene, y=TPM)) 
  geom_col()   
  scale_x_discrete(guide = guide_axis(check.overlap = T))

旋转角度

这个方法的好处是会自动寻找合适的hjustvjust值,使得旋转后文字更好看。

代码语言:javascript复制
ggplot(data=df, aes(x=Gene, y=TPM)) 
  geom_col()   
  scale_x_discrete(guide = guide_axis(angle = 45))
代码语言:javascript复制
ggplot(data=df, aes(x=Gene, y=TPM)) 
  geom_col()   
  scale_x_discrete(guide = guide_axis(angle = 90))
代码语言:javascript复制
ggplot(data=df, aes(x=Gene, y=TPM)) 
  geom_col()   
  scale_x_discrete(guide = guide_axis(angle = -45))

0 人点赞