我有以下图表,但是x轴标签太小而无法读取。如果我增加尺寸,它们将变得重叠且难以辨认
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轴标签清晰可见吗?我认为可能最简单的选择是显示所有其他标签??
答案 0 :(得分:0)
您需要scale_x_discrete
,如董的评论所述。
scale_x_discrete
具有以下三个参数(除其他外,documentation):
limits
-确定图形 breaks
-决定在轴上以刻度显示哪些值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
参数进行相同的重新排序。