坐标轴重叠是常见的绘图问题,常规的解决方式是增加图形的宽度、降低字体大小、坐标轴文字旋转。还有 2 个新的方式,自动错位排列和隐藏重叠坐标轴。
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))
# 3 行交替
ggplot(data=df, aes(x=Gene, y=TPM))+
geom_col() +
scale_x_discrete(guide = guide_axis(n.dodge=3))
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))
ggplot(data=df, aes(x=Gene, y=TPM))+
geom_col() +
scale_x_discrete(guide = guide_axis(angle = 90))
ggplot(data=df, aes(x=Gene, y=TPM))+
geom_col() +
scale_x_discrete(guide = guide_axis(angle = -45))