坐标轴重叠是常见的绘图问题,常规的解决方式是增加图形的宽度、降低字体大小、坐标轴文字旋转。还有 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
函数。
# 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))
旋转角度
这个方法的好处是会自动寻找合适的hjust
和vjust
值,使得旋转后文字更好看。
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))