在ggplot2中添加具有自定义图例的点和线层

一个小男孩

我对使用绘制同一图中的点和线有疑问ggplot2下面提供了用于生成模拟数据的代码:

library(ggplot2)
set.seed(111)
x = seq(1,10,length=10)
y1 = rnorm(10, 0, 0.1)
y2 = rnorm(10, 5, 0.1)
y3 = rnorm(10, 10, 0.3)
y4 = rnorm(10, 20, 0.4)
label = c(rep("Cat",10), rep("Dog", 10), rep("Owl", 10), rep("Eagle", 10))
dat1 = data.frame(cbind(x, y=y1))
dat2 = data.frame(cbind(x, y=y2))
dat3 = data.frame(cbind(x, y=y3))
dat4 = data.frame(cbind(x, y=y4))
dat = data.frame(rbind(dat1, dat2, dat3, dat4))
dat = cbind(dat, label)
dat

我使用以下代码来生成图:

ggplot(dat, aes(x=x, y=y, colour=label)) + 

  geom_line(data=dat[dat$label=="Cat", ], aes(x=x, y=y, linetype=label)) +
  geom_line(data=dat[dat$label=="Dog", ], aes(x=x, y=y, linetype=label)) +

  geom_point(data=dat[dat$label=="Owl", ], aes(x=x, y=y, colour=label)) + 
  geom_point(data=dat[dat$label=="Eagle", ], aes(x=x, y=y, colour=label)) + 

  scale_color_manual("Animal", 
                     values = c("Cat" = "darkgreen",
                                "Dog" = "blue", 
                                "Owl" = "red",
                                "Eagle" = "cyan")) + 
  theme_bw() +
  scale_linetype_manual(values=c(1,2)) +
  scale_alpha_manual(values=c(0.8, 0.8, 0.2, 0.2)) +
  scale_size_manual(values=c(1.8, 1.8, 0.6, 0.6)) +
  theme(legend.key=element_blank(),
        legend.key.width = unit(3, "line"),
        legend.key = element_blank())

当前图输出如下所示: 在此处输入图片说明

需要更改以下几点以获得我想要的图:

  1. 删除“标签”图例,仅显示“动物”图例
  2. 对于“猫”和“狗”图例,仅显示点,而不显示线;对于“猫头鹰”和“鹰”图例,仅显示线条,而不显示点
  3. 图例中的线型应与图中的线型匹配
  4. 图例的顺序应与我指定标签的顺序相同:猫,狗,猫头鹰和鹰
  5. 我希望线条是自动收录器(例如,宽度= 2),并且点更透明(例如,alpha = 0.4)
  6. 图例位置在情节内部,而不在情节外部

    感谢您的帮助/建议。谢谢!

迪兹斯·埃尔弗茨

当您使用不同的颜色和线型时,按顺序获取图例的最简单方法是使用function更改原始数据框中的级别顺序factor()

dat$label<-factor(dat$label,levels=c("Cat","Dog","Owl","Eagle"))

对于情节我只用一个呼吁geom_point(),并geom_line()和设置colour=linetype=shape=label里面aes()ggplot()然后使用所需scale_color_manual()的颜色设置,然后scale_linetype_manual()为Cat和Dog设置线型1和2,为其他两个级别设置线型0(不可见线)。内部scale_shape_manual()将“猫和狗”的值设置为NA。在所有手动秤中,使用相同的名称只能得到一个图例。Alpha和规模内的变化geom_point()geom_line()图例位置通过函数的参数legend.postion=进行调整theme()

ggplot(dat, aes(x=x, y=y, colour=label,linetype=label,shape=label)) + 
      geom_point(alpha=0.4)+
      geom_line(size=2)+
      scale_color_manual("Animal", 
                         values = c("Cat" = "darkgreen",
                                    "Dog" = "blue", 
                                    "Owl" = "red",
                                    "Eagle" = "cyan"))    +
      scale_linetype_manual("Animal",values=c(1,2,0,0)) +
      scale_shape_manual("Animal",values=c(NA,NA,16,16))+
      theme_bw()+
      theme(legend.position=c(0.85,0.80))

在此处输入图片说明

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有不同图例的点和线的ggplot2

来自分类Dev

自定义图例形状和大小 ggplot2

来自分类Dev

在ggplot2中创建自定义图例

来自分类Dev

R-在ggplot2中自定义图例以添加geom_vline()组件

来自分类Dev

ggplot中的多个线图,具有不同颜色的点和图例,用于线和点

来自分类Dev

具有ggplot2中定义的形状,线型和标签的完整手动图例

来自分类Dev

R ggplot2:将自定义文本添加到图例和热图侧面的值计数

来自分类Dev

在ggplot中添加图例-点/线和线段

来自分类Dev

向空白ggplot2折线图添加自定义图例

来自分类Dev

向空白ggplot2折线图添加自定义图例

来自分类Dev

自定义图例顺序 ggbiplot,基于 ggplot2

来自分类Dev

无法通过线型在ggplot2图例中分配自定义名称和样式

来自分类Dev

如何在ggplot2中的自定义图例中更改线的角度

来自分类Dev

在ggplot2中自定义图例大小符号项目

来自分类Dev

ggplot2 | 如何自定义图例中字符串值的顺序?

来自分类Dev

在ggplot2中的一个图中自定义两个图例

来自分类Dev

将自定义ggplot图例添加到虚线和置信带中

来自分类Dev

使用ggplot2将图例添加到具有多个stat_bin层的直方图中

来自分类Dev

如何使用点图将图例添加到ggplot2线?

来自分类Dev

使用点图将图例添加到 ggplot2 线

来自分类Dev

使用scale _..._ manual将自定义图例添加到具有两个geom_point图层的ggplot中

来自分类Dev

ggmap和ggplot2映射跨点图例符号放置线

来自分类Dev

在ggplot2中添加图例标题和主标题

来自分类Dev

使用R和ggplot2语法向图中添加自定义工具提示

来自分类Dev

添加自定义的x轴以绘制ggplot2和y轴

来自分类Dev

如何制作具有多个几何形状的自定义ggplot2几何图形

来自分类Dev

具有自定义bin边缘的ggplot2密度直方图

来自分类Dev

自定义具有不同颜色的ggplot2轴标签

来自分类Dev

在ggplot2中将密度线添加到具有多个变量的直方图

Related 相关文章

  1. 1

    带有不同图例的点和线的ggplot2

  2. 2

    自定义图例形状和大小 ggplot2

  3. 3

    在ggplot2中创建自定义图例

  4. 4

    R-在ggplot2中自定义图例以添加geom_vline()组件

  5. 5

    ggplot中的多个线图,具有不同颜色的点和图例,用于线和点

  6. 6

    具有ggplot2中定义的形状,线型和标签的完整手动图例

  7. 7

    R ggplot2:将自定义文本添加到图例和热图侧面的值计数

  8. 8

    在ggplot中添加图例-点/线和线段

  9. 9

    向空白ggplot2折线图添加自定义图例

  10. 10

    向空白ggplot2折线图添加自定义图例

  11. 11

    自定义图例顺序 ggbiplot,基于 ggplot2

  12. 12

    无法通过线型在ggplot2图例中分配自定义名称和样式

  13. 13

    如何在ggplot2中的自定义图例中更改线的角度

  14. 14

    在ggplot2中自定义图例大小符号项目

  15. 15

    ggplot2 | 如何自定义图例中字符串值的顺序?

  16. 16

    在ggplot2中的一个图中自定义两个图例

  17. 17

    将自定义ggplot图例添加到虚线和置信带中

  18. 18

    使用ggplot2将图例添加到具有多个stat_bin层的直方图中

  19. 19

    如何使用点图将图例添加到ggplot2线?

  20. 20

    使用点图将图例添加到 ggplot2 线

  21. 21

    使用scale _..._ manual将自定义图例添加到具有两个geom_point图层的ggplot中

  22. 22

    ggmap和ggplot2映射跨点图例符号放置线

  23. 23

    在ggplot2中添加图例标题和主标题

  24. 24

    使用R和ggplot2语法向图中添加自定义工具提示

  25. 25

    添加自定义的x轴以绘制ggplot2和y轴

  26. 26

    如何制作具有多个几何形状的自定义ggplot2几何图形

  27. 27

    具有自定义bin边缘的ggplot2密度直方图

  28. 28

    自定义具有不同颜色的ggplot2轴标签

  29. 29

    在ggplot2中将密度线添加到具有多个变量的直方图

热门标签

归档