我有以下示例图:
\n\ntest <- data.frame("Factor" = as.factor(c("O", "C", "A")), \n b = c(0.18, .34, .65, -.13, .38, .26), \n lower95 = c(-.1, .09, .34, -.52, .10, -.02), \n upper95 = c(.48, .58, .98, .26, .67, .56), \n group = factor(c("Experiment 1","Experiment 2")))\n\ntest$Factor <- factor(test$Factor, as.character(test$Factor))\ntest$group <- factor(test$group, as.character(test$group))\n\nggplot(test, aes(Factor, b, colour = group)) +\n geom_errorbar(aes(ymin = lower95, ymax = upper95), \n size = 1,\n width = .5, \n position = \'dodge\') +\n geom_hline(yintercept = 0) +\n ylim(-1.25, 1.25) +\n coord_flip() +\n theme_bw() + \n ggtitle("Title") +\n theme(\naxis.text=element_text(size = 20), \naxis.title=element_text(size = 18),\nplot.title = element_text(size = 20, face = "bold"),\naxis.text.y=element_text(size = 12)\n )\nRun Code Online (Sandbox Code Playgroud)\n\n正如您将看到的,误差线以与图例中相反的顺序(从上到下)显示。我希望实验 1 误差线出现在实验 2 误差线上方。
\n\n我努力了
\n\nggplot(test, aes(Factor, b, colour = forcats::fct_rev(groups)\nRun Code Online (Sandbox Code Playgroud)\n\n但这会颠倒图例中组标签的顺序,而不是图例\xe2\x80\x93 中颜色的顺序,这才是可行的。我还尝试颠倒在数据框中输入它们的顺序,但这并不能解决问题。
\n\n我将不胜感激一些帮助!
\n重构将改变绘图的顺序,但是,正如您所看到的,也会改变图例的顺序。除了反转 的级别之外group,您还可以反转图例与reverse参数中的显示顺序guide_legend。
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) )
Run Code Online (Sandbox Code Playgroud)
如果您正在使用scale_color_discrete或scale_color_manual控制其他比例元素(例如图例名称),则可以使用guide_legendthere 而不是 via guides。
+
scale_color_discrete(name = "Experiment", guide = guide_legend(reverse = TRUE) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1567 次 |
| 最近记录: |