为ggplot2线图创建图例

Posted

技术标签:

【中文标题】为ggplot2线图创建图例【英文标题】:Create legend to ggplot2 line plot 【发布时间】:2020-11-09 12:52:21 【问题描述】:

我对 ggplot2 中的图例和轴有一些疑问。

    我想在同一个图表中绘制两条线,并想添加一个图例(第 1 组和第 2 组)以及使用的线型和点。

    是否有可能从原点开始 X 轴 (R)?我知道条形图实际上是正确的选择,但出于内容原因,我想使用折线图。 有我的代码:

    set.seed(1234) 数据

    #Plot erzeugen

    ggplot(data=datadim, aes(x=dim, group=2))+ geom_line(aes(y=X),linetype=1, size=1)+ geom_point(aes(y=X), size=2, shape=1)+ geom_line(aes(y=Y),linetype=2, size=1)+ geom_point(aes(y=Y), size=2, shape=4)+ 实验室(x="", y="Int")+ scale_y_continuous(limits=c(0, 6),breaks = seq(0, 6, by=0.5))+ geom_rangeframe()+ 主题经典()

非常感谢!

【问题讨论】:

你的传说根本就没有出现吗?提供一些测试数据和预期输出将帮助我们提供您正在寻找的答案。看看这篇文章:***.com/questions/5963269/… 【参考方案1】:

感谢您的帮助。现在,我找到了生成图例的解决方案(第一个问题)。一个问题是,我认为 geom_line 处的“颜色”修复了颜色....

      ggplot(data=mwplots_p_t, aes(x=dim, group=1))+
  geom_line(aes(y=X1, color="1",linetype="1"), size=1)+
  geom_point(aes(y=X1, color="1"), size=2)+
  geom_line(aes(y=X2, color="2",linetype="2"), size=1)+
  geom_point(aes(y=X2, color="2"), size=2)+
  geom_line(aes(y=X3, color="3",linetype="3"), size=1)+
  geom_point(aes(y=X3, color="3"), size=2)+
  labs(x="", y="")+
  theme_classic()+
  scale_y_continuous(limits=c(-2, 2), breaks=seq(-2, 2, by=0.5))+
  theme(legend.position="bottom")+
  scale_color_manual(values=c("black", "black", "black"), name=NULL, labels=c("1", "2", "3"))+
  scale_linetype_manual(values=c("1"=1, "2"=2,"3"=3), name=NULL, labels=c("1", "2", "3"))+
  guides(fill = guide_legend(keywidth = 1, keyheight = 1),
           linetype=guide_legend(keywidth = 3, keyheight = 1),
           colour=guide_legend(keywidth = 3, keyheight = 1))

关于我的第二个问题:问题在于,x 轴由标称数据组成,没有限制...

【讨论】:

【参考方案2】:

对于您的第一个问题,我的印象是指定“线型”和“尺寸”会自动生成图例。也许设置legend.position="bottom" 会将图例置于数字范围之外。

对于第二个问题,如果您想扩大坐标轴的范围,可以使用expand_limits()。您可以指定要扩展到的范围expand_limits(x = c(1,10)),也可以指定单个值,这听起来就像您在expand_limits(x = 0) 之后的内容。在我在上一句中提供的情况下,指定单个选项将保留自动设置的上限,但将下限扩展到原点。

【讨论】:

以上是关于为ggplot2线图创建图例的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化在lines线图的尾端添加线图标签并且去除图例实战

ggplot2 函数中 geom_boxplot 的平均值和中值箱线图图例

R语言ggplot2可视化线图(line)自定义配置标题文本相关内容颜色和图例(legend)颜色相匹配(和分组线图的颜色相匹配match colors of groups)

使用ggplot2为甘特图创建图例

使用 ggplot2 创建带有形状的图例

R - ggplot2 Legend没有出现在折线图上[重复]