gpt4 book ai didi

r - 翻转图例的顺序而不改变情节中的顺序

转载 作者:行者123 更新时间:2023-12-03 13:47:56 30 4
gpt4 key购买 nike

我发现添加 coord_flip() 时对于使用 ggplot2 的某些图,图例中的值顺序不再与图中值的顺序一致。

例如:

dTbl = data.frame(x=c(1,2,3,4,5,6,7,8),
y=c('a','a','b','b','a','a','b','b'),
z=c('q','q','q','q','r','r','r','r'))

print(ggplot(dTbl, aes(x=factor(y),y=x, fill=z)) +
geom_bar(position=position_dodge(), stat='identity') +
coord_flip() +
theme(legend.position='top', legend.direction='vertical'))

enter image description here

我希望图例中的 'q' 和 'r' 被颠倒而不改变情节中 'q' 和 'r' 的顺序。
scale.x.reverse()看起来很有希望,但它似乎在因子范围内不起作用(就像这个条形图的情况一样)。

最佳答案

您正在寻找 guides :

ggplot(dTbl, aes(x=factor(y),y=x, fill=z)) +
geom_bar(position=position_dodge(), stat='identity') +
coord_flip() +
theme(legend.position='top', legend.direction='vertical') +
guides(fill = guide_legend(reverse = TRUE))

Brian 在聊天中提醒我,通过设置 breaks,对于任意排序,有一种更通用的方法可以做到这一点。争论:
ggplot(dTbl, aes(x=factor(y),y=x, fill=z)) +
geom_bar(position=position_dodge(), stat='identity') +
coord_flip() +
theme(legend.position='top', legend.direction='vertical') +
scale_fill_discrete(breaks = c("r","q"))

关于r - 翻转图例的顺序而不改变情节中的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22517002/

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