gpt4 book ai didi

r - 如何在ggplot2中重新排序图例?

转载 作者:行者123 更新时间:2023-12-04 11:35:18 28 4
gpt4 key购买 nike

给定一个带有分类标签列和百分比数据定量列的两列数据框,我可以在 ggplot 中可靠地生成一个条形图,使用以下方法按值而不是按字母顺序对条形进行排序:

ggplot(data=df, aes(x=reorder(Label, Percent), y=Percent, fill=Label)) + geom_bar()

这告诉重新排序按百分比值而不是文本对条形图进行排序,从而更容易查看更改。

但是,我无法让图例匹配:相反,它坚持按原始字母值排序。这会导致与图表不匹配的图例,这令人困惑。

我查看了 StackOverflow 和其他地方,但没有找到可行的修复程序。有什么建议吗?

编辑:根据请求,这本质上是数据:
Labels <- c("G", "G", "A", "C", "M", "B", "M", "G", "A","M")
Percent <- c("-0.241","-0.046", "-0.037", "-0.024", "-0.003","0.007","0.01","0.059","0.121", "0.152")

最佳答案

我发现最简单的方法是在绘图之前对数据重新排序。通过在 reorder(() 中指定 aes() ,您基本上可以为绘图部分制作它的有序副本,但是 ggplot 在内部传递它很棘手,例如到图例制作功能。

这应该可以正常工作:

df$Label  <- with(df, reorder(Label, Percent))
ggplot(data=df, aes(x=Label, y=Percent, fill=Label)) + geom_bar()

我确实假设您的 Percent 列是数字,而不是因子或字符。这从你的问题中不清楚。将来,如果您发布 dput(df),这些类将是明确的,并且允许人们将您的数据复制/粘贴到 R 中。

关于r - 如何在ggplot2中重新排序图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com