为了账号安全,请及时绑定邮箱和手机立即绑定

你如何专门订购ggplot2 x轴而不是字母顺序?

你如何专门订购ggplot2 x轴而不是字母顺序?

慕容森 2019-07-26 16:52:01
你如何专门订购ggplot2 x轴而不是字母顺序?我想一个使heatmap使用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轴是治疗的类型我的Y轴是有机体的类型我对命令和编程不太熟悉,而且我对此比较陌生。我只是想能够指定x轴上标签的顺序。在这种情况下,我试图指定“治疗”的顺序。默认情况下,它按字母顺序排序。如何覆盖此数据/保持数据的顺序与原始csv文件中的顺序相同?我试过这个命令scale_x_discrete(limits=c("Y","X","Z"))其中x,y和z是我的治疗条件顺序。然而,它不能很好地工作,并给我缺少热箱。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

如果没有完整,可重复的示例,有点难以回答您的具体问题。但是这样的事情应该有效:

#Turn your 'treatment' column into a character vectordata$Treatment <- as.character(data$Treatment)#Then turn it back into a factor with the levels in the correct orderdata$Treatment <- factor(data$Treatment, levels=unique(data$Treatment))

在此示例中,因子的顺序将与data.csv文件中的顺序相同。

如果您喜欢不同的订单,可以手动订购:

data$Treatment <- factor(data$Treatment, levels=c("Y", "X", "Z"))

但是,如果你有很多级别,这是危险的:如果你弄错了任何一个,那将导致问题。


查看完整回答
反对 回复 2019-07-26
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

最常见的答案提供了一种需要更改基础数据框架的解决方案。这不是必需的。也可以直接在aes()调用中进行分解,或者为此创建一个向量。

这肯定与@Drew Steen的答案没什么不同,但是与不改变原始数据框架的重要区别。

level_order <- c('virginica', 'versicolor', 'setosa') #this vector might be useful for other plots/analysesggplot(iris, aes(x = factor(Species, level = level_order), y = Petal.Width)) + geom_col()

要么

level_order <- factor(iris$Species, level = c('virginica', 'versicolor', 'setosa'))ggplot(iris, aes(x = level_order, y = Petal.Width)) + geom_col()


直接在aes()没有预先创建的矢量的呼叫中:

ggplot(iris, aes(x = factor(Species, level = c('virginica', 'versicolor', 'setosa')), y = Petal.Width)) + geom_col()


查看完整回答
反对 回复 2019-07-26
  • 2 回答
  • 0 关注
  • 1001 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信