【问题标题】:How to add a legend for each line type with ggplot?如何使用ggplot为每种线型添加图例?
【发布时间】:2019-10-30 14:21:58
【问题描述】:

我想添加一个图例,说明我使用的两种线型之间的差异。我很确定这是一件非常基本的事情,但尽管尝试了不同的事情,但我无法让它发挥作用......

您会在下面找到我的代码的代表。

x<-c(1:10)
y<-c(runif(10,min=50,max=100))
z<-c(runif(10,min=50,max=100))
group=c("A","A","B","C","B","C","C","B","A","B")
session=c(rep("S1",5),rep("S2",5))

test<-data.frame(x=x, Serie1=y,Serie2=z,group=group,session=session)

library(ggplot2)
ggplot(test)+
  geom_line(aes(x=x,y=Serie1,group=group,col=group,pch=group),linetype=1)+
  geom_line(aes(x=x,y=Serie2,group=group,col=group),linetype=2)+
  labs(x="x axis",y="yaxis")+
  facet_grid(.~session)
#> Warning: Ignoring unknown aesthetics: shape

有没有人知道如何为线型添加图例以指定 serie1 用实线表示,serie2 用虚线表示? 另外,有谁知道为什么在我运行之前的代码时会出现以下警告:“警告:忽略未知美学:形状”? 谢谢大家的帮助!

【问题讨论】:

    标签: r ggplot2 legend


    【解决方案1】:

    如果您想要某事的图例,它需要在 aes() 内。将linetype= 移动到aes() 中,这样您就可以给这些行命名。此外,有关形状的错误消息来自 pch=,这不是行的有效参数。

    library(ggplot2)
    ggplot(test)+
      geom_line(aes(x=x,y=Serie1,group=group,col=group,linetype="series1"))+
      geom_line(aes(x=x,y=Serie2,group=group,col=group,linetype="series2"))+
      labs(x="x axis",y="yaxis")+
      facet_grid(.~session)
    

    【讨论】:

    • 非常感谢!这正是我所需要的!我以前试过这个,但我收到一条错误消息(错误:连续值提供给离散比例)但我猜这是由 linetype=2 引起的。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2023-02-22
    • 1970-01-01
    相关资源
    最近更新 更多