带有ggplot2和geom_point的图例

用户名

我在尝试使用ggplot2和geom_point时创建图例。我有一个看起来像这样的数据框

d <- data.frame(variable = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"),
            value = rnorm(10, 3),
            Schoolave = rnorm(10, 3),
            districtave = rnorm(10, 3),
            max = rnorm(10, 3),
            min = rnorm(10, 3))

我想绘制一个看起来像这样的情节。

plot <- ggplot(data = d, aes(x = variable, y = value)) + geom_errorbar(ymax = d$max, ymin = d$min) 

plot <- plot + coord_flip() 
plot <- plot + geom_point(data = d, aes(x = variable, y = value), 
                                                shape = 1, size = 5)
plot <- plot + geom_point(data = d, aes(x = variable, y = districtave), shape = 0, size = 4)
plot <- plot + geom_point(data = d, aes(x = variable, y = Schoolave), shape = 2, size = 3)
plot <- plot + theme_bw() + theme(legend.position= "bottom") 
plot

我想要一个传说,告诉他们您的平均得分所在的圆圈。三角形是您学校的平均分数。平方是该地区的平均值。我一直在寻找无法解决此问题的方法。任何帮助,将不胜感激。

格雷戈尔·托马斯(Gregor Thomas)

ggplot 喜欢整洁的数据,这意味着您必须将数据融合为长格式。

library(reshape2)
d.points = melt(d[, c("variable", "value", "Schoolave", "districtave")],
                id = "variable",
                variable.name = "type")

现在,您的数据只有一个列,我们将其映射到shape,因此自动图例将起作用。无需添加到同一图并保存每行,只需一次添加即可。并且请不要指定的data$column内部aes()如果您想刻面或进行更高级的绘图,将会引起问题。您可以预先指定数据,因此无需在内再说一遍aes()使用aes()所有你的审美映射,如errorbar的最小值和最大值。

plot <- ggplot(data = d, aes(x = variable, y = value)) + 
    geom_errorbar(aes(ymax = max, ymin = min)) +
    coord_flip() +
    geom_point(data = d.points,
               aes(x = variable, y = value, shape = type),
               size = 5) +
    scale_shape_manual(values = 1:3, name = "") +
    theme_bw() + 
    theme(legend.position= "bottom") 
plot

如果需要更好的标签,可以在形状比例中指定它们。在水平图例中,我喜欢添加一些空白,如下所示:

scale_shape_manual(values = 1:3, name = "",
                   labels = c("Individual Average  ", "School Average  ", "District Average  ")) +

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ggplot2中带有geom_line和geom_point的图例

ggplot2:合并geom_line,geom_point和geom_bar的图例

为带有2个不同变量的geom_point提供文本到ggplot2地图的图例

从图例中删除ggplot2的geom_point图标

填充地图上geom_point的ggplot2图例

ggplot2:没有具有多个 geom_point 的图例

如何在ggplot2中获取堆叠的geom_bar和geom_point的通用图例?

r 中带有 geom_point 的 gg 绘图(ggplot2)

无法在 r 中使用 ggplot2 将组合 geom_point 和 _line 图的颜色和线型图例分开

ggplot2 geom_point alpha在图例中与图例不同

带有 geom_line 和 geom_ribbon 和 geom_point 的图例

ggplot2 geom_point具有图案填充

在ggplot2中使用geom_smooth()和geom_point()时显示带有日期的x轴标签

带有geom_text_repel和geom_point的颜色图例

大小映射到变量时,ggplot2 geom_point图例

ggplot2-结合了geom_point和geom_line的图例

ggplot2:将geom_line和geom_point组合在一起的图形中的坐标图例

R ggplot2:如何绘制具有纯色和透明笔触并根据颜色着色的geom_point?

为ggplot2中的负值和正值在geom_point中设置不同的颜色

ggplot2:geom_point的边框和填充的不同Alpha值

ggplot2减少geom_point()因子之间的空间

在GGPLOT2 geom_point的NPC坐标

更改中点 geom_point ggplot2 R

ggplot2 2.0.0中的geom_point边界

矩形ggplot2 geom_point形状

ggplot2 geom_point 3D球形

ggplot2 中的振幅线 + geom_point

geom_point {ggplot2}中的alpha值

ggplot2在单个图中有多个geom_point