gpt4 book ai didi

r - ggplot2:更改图例中的因子顺序

转载 作者:行者123 更新时间:2023-12-04 12:27:22 24 4
gpt4 key购买 nike

我有一个折线图,我想对因子在图例中出现的方式重新排序。我试过scale_fill_discrete但它不会改变顺序。
这是我的问题的模拟:

df <- data.frame(var1=c("F", "F", "F", "B", "B", "B"),
var2=c("levelB", "levelC", "levelA"),
value=c("2.487585", "2.535944", "3.444764", "2.917308", "2.954155","3.739049"))

p <- ggplot(data=df, aes(x=var1, y=value,
group=var2, colour=var2, shape = var2)) +
geom_line(size = 0.8) +
geom_point()+
xlab("var1") + ylab("Value") +
scale_x_discrete(limits=c("F","B")) +
theme(legend.title = element_text(size=12)) +
theme(legend.text = element_text(size=10)) +
scale_fill_discrete(breaks=c("levelB","levelC","levelA")) +
theme(title = element_text(size=12)) +
blank + scale_color_manual(values=c("green2", "red", "black")) +
theme(legend.key = element_blank())
p

这创造了这个:

enter image description here

我希望一切都保持完全相同,除了图例,我想将顺序更改为 levelB然后 levelC然后 levelA .
我猜 ggplot2按字母顺序排列图例,我想覆盖它。
重新排序我的数据框不起作用,并且 scale_fill_discrete也不会改变它。
有任何想法吗?

谢谢!

最佳答案

通过对因子中的级别重新排序,您可以更改图例标签的顺序。跑:

df$var2 <- factor(df$var2, levels=c("levelB", "levelC", "levelA"))

然后重新运行 ggplot 代码,levelB 现在应该在图例的顶部和绿色,levelC 第二和红色,levelA 第三和黑色。

关于r - ggplot2:更改图例中的因子顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33480043/

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