你如何具体命令ggplot2 x轴而不是按字母顺序?
我试图使用ggplot2
使用geom_tiles
函数,这里是我的代码如下:
p<-ggplot(data,aes(Treatment,organisms))+geom_tile(aes(fill=S))+ scale_fill_gradient(low = "black",high = "red") + scale_x_discrete(expand = c(0, 0)) + scale_y_discrete(expand = c(0, 0)) + theme(legend.position = "right", axis.ticks = element_blank(), axis.text.x = element_text(size = base_size, angle = 90, hjust = 0, colour = "black"), axis.text.y = element_text(size = base_size, hjust = 1, colour = "black")).
数据是我的data.csv文件
我的X轴是治疗types
我的Y轴是有机体的types
我不太熟悉命令和编程,而且我在这方面比较新。 我只是想能够指定在x轴上的标签的顺序。 在这种情况下,我试图指定“治疗”的顺序。 默认情况下,它按字母顺序排列。 我如何覆盖这个/保持在我的原始csv文件相同的顺序的数据?
我试过这个命令
scale_x_discrete(limits=c("Y","X","Z"))
其中x,y和z是我的治疗条件顺序。 然而,它不能很好地工作,并给我失踪的热箱。
没有一个完整的,可重复的例子,回答你的具体问题是有点困难的。 然而,这样的事情应该工作:
#Turn your 'treatment' column into a character vector data$Treatment <- as.character(data$Treatment) #Then turn it back into an ordered factor data$Treatment <- factor(data$Treatment, levels=unique(data$Treatment))
在本例中,因子的顺序与data.csv
文件中的data.csv
相同。
如果您喜欢不同的顺序,您可以亲自订购:
data$Treatment <- factor(data$Treatment, levels=c("Y", "X", "Z"))
然而,如果你有很多关卡,这是很危险的:如果你弄错了,会导致问题。