你如何具体命令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")) 

然而,如果你有很多关卡,这是很危险的:如果你弄错了,会导致问题。