Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在ggplot2中连接线条和功能区图例?_R_Ggplot2 - Fatal编程技术网

R 如何在ggplot2中连接线条和功能区图例?

R 如何在ggplot2中连接线条和功能区图例?,r,ggplot2,R,Ggplot2,我想加入这一行(“Curva de rarefação”)和ribbon(“Desvio padrão”)的传奇 hh。不确定是否有更简单的方法来达到你想要的结果,但至少它是有效的。(实际上,我希望你想要我在评论中提出的第一个简单的选择(;) 首先,几何图形没有任何图例,图例显示美学的尺度,即不同的fills、colors、linetypes 因此,实现所需结果的第一步是对“黑色”geom_线和geom_丝带使用相同的美学,但对“红色”geom_线使用不同的美学 因此,我在geom_线和geom

我想加入这一行(“Curva de rarefação”)和ribbon(“Desvio padrão”)的传奇


hh。不确定是否有更简单的方法来达到你想要的结果,但至少它是有效的。(实际上,我希望你想要我在评论中提出的第一个简单的选择(;)

首先,几何图形没有任何图例,图例显示美学的尺度,即不同的
fill
s、
color
s、
linetype
s

因此,实现所需结果的第一步是对“黑色”
geom_线
geom_丝带
使用相同的美学,但对“红色”
geom_线
使用不同的美学

  • 因此,我在
    geom_线
    geom_色带
    中使用
    颜色
    填充
    aes,而在第二条
    geom_线
    中,我使用
    线型
    。这样我们就得到了一个“黑线”和“色带”的图例(实际上我们得到了两个),以及第二个“红线”的图例

  • 要合并颜色和填充图例,我们必须为两个图例设置相同的名称,这是我通过
    labs(fill=NULL,color=NULL,linetype=NULL)
    完成的,这样我就可以去掉图例标题

  • 接下来,我们通过scale_xxx_手册设置颜色和填充颜色以及标签

  • 经过这些步骤,我们几乎就到了,除了黑线的
    图例键周围的黑色边框。这是非常棘手的部分,但经过一些尝试和错误,我发现这可以通过将
    几何图形功能区的
    键字形设置为
    “rect”
    来实现

  • 最后,我更改了图例的顺序,以便首先显示“双”图例

  • 使用一些随机示例数据检查以下内容:

    库(ggplot2)
    种子(42)
    
    你说的“联合”是什么意思?您想要一个图例,其中功能区和黑线的图例键合并在一起?还是想要两个图例,一个带有一条红线,一个带有一条黑线和一个灰色填充框?是的,第二个选项!两个图例,一个带有一条红线,一个带有一条黑线和一个灰色填充框。我相信事实上我希望第一个选项!很抱歉我在英语中的误解。我想要一个只有黑线和灰色背景的盒子。谢谢!!!哈哈。至少我通过找出第二个选项的棘手解决方案学到了很多。我只是做了一个编辑,向你展示如何实现第一个选项。最好的S。哈哈哈谢谢!!教学我们也一直在学习!利用这个话题,你知道如何删除关于传奇的另一个问题吗?
    hh <- data.frame(rr = sp5$richness, rc = sp1$richness, p = sp5$individuals, sd = sp5$sd)
    
    ggplot(hh)+
      geom_line(aes(x = p, y = rr, color = "rr")) +
      geom_ribbon(aes(x = p, ymin = rr-sd*2, ymax = rr+sd*2, fill = "sd"), alpha = 0.2)+
      geom_line(aes(x = p, y = rc, color = "rc")) +
      theme_minimal()+
      scale_colour_manual("", 
                          breaks = c("rr", "rc"),
                          labels = c("Curva de rarefação", "Curva do coletor"),
                          values = c("black", "red")) +
      scale_fill_manual("",
                          breaks = "sd", labels = "Desvio-padrão", values = "grey") +
      xlab("\nIndivíduos")+
      ylab("Riqueza\n")