X轴标签难以辨认。在X轴ggplot2上显示所有其他标签

时间:2019-03-06 23:15:21

标签: r ggplot2

我有以下图表,但是x轴标签太小而无法读取。如果我增加尺寸,它们将变得重叠且难以辨认

X axis labels too small

I have tried the code form the following link

但是我收到一个错误消息,“在'by'参数中错误登录'

我也尝试了以下链接 How to show every second R ggplot2 x-axis label value?

但是作为一个初学者,我不能完全遵循代码,并且不确定是否有添加日期标签的复杂性。

我在170个样本中拥有100个基因的df +一个“基因”列。然后,我使用以下代码使数据变长:

mat_dataNew<-mat_data %>% gather(sample, expression, -Genes)
#log10-transform Counts data
mat_dataNew <- mutate(mat_dataNew, log10_NormCounts = log10(expression))

然后我绘图:

ggplot(mat_dataNew, aes(x=reorder(Genes, -log10_NormCounts), y=log10_NormCounts, colour=Group)) +
 geom_point(size=.5) +
theme(axis.text.x=element_text(angle=90, size=4)) +
 labs(x = "100 most abundant Genes", y = "Gene Expression (Log10 Normalised Counts)")

我尝试阅读有关scale_x_continuous的内容,但似乎找不到答案。您能帮忙建议一些代码,以便使x轴标签清晰可见吗?我认为可能最简单的选择是显示所有其他标签??

1 个答案:

答案 0 :(得分:0)

您需要scale_x_discrete,如董的评论所述。

scale_x_discrete具有以下三个参数(除其他外,documentation):

  1. limits-确定图形
  2. 的值及其顺序
  3. breaks-决定在轴上以刻度显示哪些值
  4. labels-确定刻度线实际显示为标签的形式

(在您的情况下,由于您的基因名称已经成为因素,因此不需要标签参数。)

为所有基因设置limits参数,为所有其他基因(SO ref)设置breaks参数,并将scale_x_discrete添加到您的{{1 }}。

ggplot

注意:您似乎需要对ggplot(...+ scale_x_discrete(limits=Genes,breaks=Genes[seq(1,length(Genes),by=2)])+ ...) 中的“基因”列进行重新排序,才能对ggplot参数进行相同的重新排序。