gpt4 book ai didi

在 ggplot2 中旋转图例键

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

我的数据集如下

dput(data2)
structure(list(School = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L,
3L, 3L), .Label = c("School1", "School2", "School3"), class = "factor"),
Year = c(2015L, 2014L, 2013L, 2015L, 2014L, 2013L, 2015L,
2014L, 2013L), Rate = c(70L, 50L, 30L, 80L, 90L, 11L, 60L,
50L, 40L)), .Names = c("School", "Year", "Rate"), class = "data.frame", row.names = c(NA,
-9L))


School Year Rate
1 School1 2015 70
2 School1 2014 50
3 School1 2013 30
4 School2 2015 80
5 School2 2014 90
6 School2 2013 11
7 School3 2015 60
8 School3 2014 50
9 School3 2013 40

我使用 ggplot2 绘制这些数据,如下所示

library(ggplot2)
ggplot(data=data2,aes(x=School,y=Rate)) +
geom_bar(stat = "identity", fill="orange",width = 0.5) +
geom_hline(aes(yintercept = 220,color="red"), size = 1) +
coord_flip()

这给了我下面的图表,我试图按如下方式旋转图例中的线 enter image description here

我读过 Stack Overflow 上的帖子,其中提到图例中的线条是垂直显示的,但只有当您使用 geom_linerange 时才会发生这种情况,但我不能将其用于我的示例。

请有人帮助我了解如何在图例中旋转线条。

想到的一种替代方法是使用 grid 包导航视口(viewport),然后查看我是否能够旋转图例键使用的视口(viewport)。

最佳答案

如果您的实际绘图有更复杂的基于不同 geom 的图例要求,这里的答案可能会有所帮助:How to rotate legend symbols in ggplot2?

就是说,如果您只需要 geom_hline 层的东西,与 geom_vline 关联的图例就足以伪造它:

ggplot(data = data2, aes(x = School, y = Rate)) +
geom_col(fill = "orange", width = 0.5) +

# do not specify color within aes() for geom_hline
geom_hline(aes(yintercept = 220), color="red", size = 1) +

# specify color within aes() for geom_vline instead, but don't let the line
# be invisible with alpha = 0
geom_vline(aes(xintercept = 1, color = "legend.label"), alpha = 0) +

# set up the color legend as per normal. it's based on an invisible geom_vline,
# but is visible with alpha = 1 & size = 1
scale_color_manual(
name = "legend.title",
values = "red",
guide = guide_legend(override.aes = list(alpha = 1, size = 1))) +

coord_flip()

plot

顺便说一句,geom_col() 等同于 geom_bar(stat = "identity"),并且看起来不那么困惑。

关于在 ggplot2 中旋转图例键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50664538/

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