gpt4 book ai didi

r - 如何使用 R 中的 geom_errorbar() 反转错误栏出现的顺序?

转载 作者:行者123 更新时间:2023-12-05 02:17:36 25 4
gpt4 key购买 nike

我有以下示例图:

test <- data.frame("Factor" = as.factor(c("O", "C", "A")), 
b = c(0.18, .34, .65, -.13, .38, .26),
lower95 = c(-.1, .09, .34, -.52, .10, -.02),
upper95 = c(.48, .58, .98, .26, .67, .56),
group = factor(c("Experiment 1","Experiment 2")))

test$Factor <- factor(test$Factor, as.character(test$Factor))
test$group <- factor(test$group, as.character(test$group))

ggplot(test, aes(Factor, b, colour = group)) +
geom_errorbar(aes(ymin = lower95, ymax = upper95),
size = 1,
width = .5,
position = 'dodge') +
geom_hline(yintercept = 0) +
ylim(-1.25, 1.25) +
coord_flip() +
theme_bw() +
ggtitle("Title") +
theme(
axis.text=element_text(size = 20),
axis.title=element_text(size = 18),
plot.title = element_text(size = 20, face = "bold"),
axis.text.y=element_text(size = 12)
)

如您所见,误差线的显示顺序与图例中的顺序相反(从上到下)。我希望实验 1 的误差线出现在实验 2 的误差线之上。

我试过了

ggplot(test, aes(Factor, b, colour = forcats::fct_rev(groups)

但这会颠倒图例中组标签的顺序,而不是图例中颜色的顺序——这才是可行的。我还尝试颠倒我在数据框中输入它们的顺序,但这并不能解决问题。

我会很感激一些帮助!

最佳答案

重构会改变情节的顺序,但如您所见,也会改变图例的顺序。除了反转 group 的级别之外,您还可以使用 guide_legend 中的 reverse 参数来反转图例的显示顺序。

ggplot(test, aes(Factor, b, colour = forcats::fct_rev(group))) +
geom_errorbar(aes(ymin = lower95, ymax = upper95),
size = 1,
width = .5,
position = 'dodge') +
geom_hline(yintercept = 0) +
ylim(-1.25, 1.25) +
coord_flip() +
theme_bw() +
ggtitle("Title") +
theme(
axis.text=element_text(size = 20),
axis.title=element_text(size = 18),
plot.title = element_text(size = 20, face = "bold"),
axis.text.y=element_text(size = 12)
) +
guides(color = guide_legend(reverse = TRUE) )

enter image description here

如果您使用 scale_color_discretescale_color_manual 来控制其他比例元素,例如图例名称,您可以在那里使用 guide_legend 而不是通过 指南

+
scale_color_discrete(name = "Experiment", guide = guide_legend(reverse = TRUE) )

关于r - 如何使用 R 中的 geom_errorbar() 反转错误栏出现的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47445112/

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