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

无害环境

这是示例数据帧:

dt <- data.frame(x = 1:6, y2017 = 5:10, y2018 = 12:17, y2019 = 15:20)

#  x y2017 y2018 y2019
#  1     5    12    15
#  2     6    13    16
#  3     7    14    17
#  4     8    15    18
#  5     9    16    19
#  6    10    17    20

这是我最初所做的:

ggplot(dt, aes(x = x)) +
  geom_point(aes(y = y2017, color = "2017", fill = "2017", shape = "2017"), size = 2) + 
  geom_line(aes(y = y2017, color = "2017")) +
  geom_point(aes(y = y2018, color = "2018", fill = "2018", shape = "2018"), size = 2) + 
  geom_point(aes(y = y2019, color = "2019", fill = "2019", shape = "2019"), size = 2) + 
  ylab("Y") +
  scale_colour_manual(name = "", 
                      breaks = c("2017", "2018","2019"),
                      values = c("#D16103", "#52854C", "#293352")) +
  scale_shape_manual(name = "", 
                     breaks = c("2017", "2018","2019"),
                     values = c(3, 4, 21)) +
  scale_fill_manual(name = "", 
                    breaks = c("2017", "2018","2019"),
                    values = c("#D16103", "#52854C", "#293352")) + 
  theme_bw()

结果图为: 在此处输入图片说明

对于Legend20182019,有一条直线贯穿这一点,这不是我想要的。于是,我试着继续colorgeom_line2017出的aes()

ggplot(dt, aes(x = x)) +
  geom_point(aes(y = y2017, color = "2017", fill = "2017", shape = "2017"), size = 2) + 
# Here is what I change:
  geom_line(aes(y = y2017),  color = "#D16103") +
  geom_point(aes(y = y2018, color = "2018", fill = "2018", shape = "2018"), size = 2) + 
  geom_point(aes(y = y2019, color = "2019", fill = "2019", shape = "2019"), size = 2) + 
  ylab("Y") +
  scale_colour_manual(name = "", 
                      breaks = c("2017", "2018","2019"),
                      values = c("#D16103", "#52854C", "#293352")) +
  scale_shape_manual(name = "", 
                     breaks = c("2017", "2018","2019"),
                     values = c(3, 4, 21)) +
  scale_fill_manual(name = "", 
                    breaks = c("2017", "2018","2019"),
                    values = c("#D16103", "#52854C", "#293352")) + 
  theme_bw()

然后结果变为: 在此处输入图片说明

在的图例中2017与之交叉的线不再存在,而20182019是正确的。

我不知道是否有一种方法允许的传奇组合2017在第一张图和20182019第二图。

(我知道我可以pivot_longer()用来变换数据集并使其更容易绘制图例,但是对于我的主要数据集来说,这变得更加困难。所以我坚持这种方式)

YBS

只需将以下代码添加到程序的第一部分:

guides(shape= guide_legend(override.aes=list(colour=c("#D16103","#52854C", "#293352"), lty=c(1,0,0) )))

然后您将获得以下输出:

输出

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ggplot2:如何将geom_line和geom_point的图层与错误栏组合在一起

来自分类Dev

将geom_point和geom_line与position_jitterdodge结合在一起以得到两个分组因子

来自分类Dev

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

来自分类Dev

ggplot2:图例将颜色和隐藏线混合在一起用于预测图

来自分类Dev

将gganimate与geom_point和geom_line一起使用

来自分类Dev

是否可以将ggplot图例与plotly图例组合在一起,使它们等效?

来自分类Dev

使用geom_point()和geom_line()进行多个系列的ggplot中的图例错误

来自分类Dev

将所有条目的堆叠和分组图表ggplot2组合在一起

来自分类Dev

以重复方式将ggplot2 :: geom_point()与ggplot2 :: geom_line()连接

来自分类Dev

带有ggplot2和geom_point的图例

来自分类Dev

带有ggplot2和geom_point的图例

来自分类Dev

结合ggplot geom_point和geom_line图产生的冗余图例

来自分类Dev

如何在Angular 2中将多个Observable组合在一起

来自分类Dev

在一个图中组合geom_point和geom_line

来自分类Dev

将正确的值组合在一起

来自分类Dev

当我同时拥有geom_line和geom_hline时,如何在ggplot2中获得组合图例

来自分类Dev

如何使用 plotly 或 ggplot 将多个饼图与循环组合在一起

来自分类Dev

geom_line ggplot2 中同一组的两个不同图例

来自分类Dev

将2个具有不同列数的数据框组合在一起,并用和求和

来自分类Dev

错误:无法将`..1 $ A` <double>和`..2 $ A` <factor <ee569 >>组合在一起

来自分类Dev

将Angular Dart和Paper元素组合在一起

来自分类Dev

获取将数组和常量组合在一起的哈希

来自分类Dev

如何使用jquery appendTo()将列表项和按钮组合在一起?

来自分类Dev

将多个数组与 identica 键和不同的值组合在一起

来自分类Dev

如何将多个稀疏矩阵和密集矩阵组合在一起

来自分类Dev

如何将2个CSS类组合在一起?

来自分类Dev

如何将2个折线图组合在一起

来自分类Dev

如何将2个脚本组合在一起?

来自分类Dev

JSON.net将2个列表(JObject)组合在一起

Related 相关文章

  1. 1

    ggplot2:如何将geom_line和geom_point的图层与错误栏组合在一起

  2. 2

    将geom_point和geom_line与position_jitterdodge结合在一起以得到两个分组因子

  3. 3

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

  4. 4

    ggplot2:图例将颜色和隐藏线混合在一起用于预测图

  5. 5

    将gganimate与geom_point和geom_line一起使用

  6. 6

    是否可以将ggplot图例与plotly图例组合在一起,使它们等效?

  7. 7

    使用geom_point()和geom_line()进行多个系列的ggplot中的图例错误

  8. 8

    将所有条目的堆叠和分组图表ggplot2组合在一起

  9. 9

    以重复方式将ggplot2 :: geom_point()与ggplot2 :: geom_line()连接

  10. 10

    带有ggplot2和geom_point的图例

  11. 11

    带有ggplot2和geom_point的图例

  12. 12

    结合ggplot geom_point和geom_line图产生的冗余图例

  13. 13

    如何在Angular 2中将多个Observable组合在一起

  14. 14

    在一个图中组合geom_point和geom_line

  15. 15

    将正确的值组合在一起

  16. 16

    当我同时拥有geom_line和geom_hline时,如何在ggplot2中获得组合图例

  17. 17

    如何使用 plotly 或 ggplot 将多个饼图与循环组合在一起

  18. 18

    geom_line ggplot2 中同一组的两个不同图例

  19. 19

    将2个具有不同列数的数据框组合在一起,并用和求和

  20. 20

    错误:无法将`..1 $ A` <double>和`..2 $ A` <factor <ee569 >>组合在一起

  21. 21

    将Angular Dart和Paper元素组合在一起

  22. 22

    获取将数组和常量组合在一起的哈希

  23. 23

    如何使用jquery appendTo()将列表项和按钮组合在一起?

  24. 24

    将多个数组与 identica 键和不同的值组合在一起

  25. 25

    如何将多个稀疏矩阵和密集矩阵组合在一起

  26. 26

    如何将2个CSS类组合在一起?

  27. 27

    如何将2个折线图组合在一起

  28. 28

    如何将2个脚本组合在一起?

  29. 29

    JSON.net将2个列表(JObject)组合在一起

热门标签

归档