没有出现geom_line图例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有出现geom_line图例相关的知识,希望对你有一定的参考价值。

我有数据。

No. s1      s2      s3      s4
1   0.52    0.25    0.03    0.12
2   0.32    0.45    0.12    0.98
3   0.46    0.48    0.52    0.82
4   0.25    0.47    0.24    0.5
5   0.09    0.53    0.85    0.41
6   0.98    0.02    0.72    0.35
7   0.54    0.91    0.63    0.65

我已经绘制了图表,但ggplot不显示图例。你有什么想法,我可以把它?

代码。

ggplot(data=file1, aes(x = No.)) + 
  geom_line(aes(y = s1), colour="red",size=1)+
  geom_line(aes(y = s2), colour="firebrick", size=1, alpha=.2)+
  geom_line(aes(y = s3), colour="orange", size=1, alpha=.2)+
  geom_line(aes(y = s4), colour="darkolivegreen", size=1)+
  xlab("Number")+ylab("length")+
  theme(legend.position="bottom")+
  scale_x_discrete(limits=c("s1", "s2", "s3", "s4"))+
  scale_fill_discrete(name = "Dose", labels = c("group1", "group2", "group3", "group4"))

我也试过重新调整我的数据,像下面这样。

No. Data    group
1   0.52    1
2   0.32    1
3   0.46    1
4   0.25    1
5   0.09    1
..  ...    ...
26  0.41    4
27  0.35    4
28  0.65    4

用下面的代码,它带来了图例,但颜色深浅不一。

ggplot(file1, aes(x=No., colour=group))+
  geom_line(aes(y=Data))

谢谢您

答案

你在分配色彩美学时犯了一个错误。

ggplot(file1, aes(x=No., colour=group) )+
  geom_line(aes(y=Data))
另一答案

从你的数据入手,用的是长表。 只是在使用 scale_colour_manual( ) 函数来为图表添加适当的颜色。

data<-structure(list(No. = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 
                             3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 7L, 7L, 
                             7L, 7L), group = c("s1", "s2", "s3", "s4", "s1", "s2", "s3", 
                                                "s4", "s1", "s2", "s3", "s4", "s1", "s2", "s3", "s4", "s1", "s2", 
                                                "s3", "s4", "s1", "s2", "s3", "s4", "s1", "s2", "s3", "s4"), 
                     Data = c(0.52, 0.25, 0.03, 0.12, 0.32, 0.45, 0.12, 0.98, 
                              0.46, 0.48, 0.52, 0.82, 0.25, 0.47, 0.24, 0.5, 0.09, 0.53, 
                              0.85, 0.41, 0.98, 0.02, 0.72, 0.35, 0.54, 0.91, 0.63, 0.65
                     )), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -28L))


labels <- c("group1", "group2", "group3", "group4")
title<-"Legend"
ggplot(data, aes(x=No., y=Data, colour=group, alpha=group, size=group))+
  geom_line() + 
  xlab("Number")+ylab("length")+
  theme(legend.position="bottom")+
  scale_colour_manual(values=c("s1" = "red", "s2"= "firebrick", s3="orange", s4="darkolivegreen"), labels = labels) +
  scale_alpha_manual(values=c(1,0.4,0.4,1), labels = labels)+
  scale_size_manual(values=c(4,1,1,4), labels = labels) + 
  guides(colour = guide_legend(title = title), 
         alpha = guide_legend(title = title), 
         size = guide_legend(title = title))

enter image description here

以上是关于没有出现geom_line图例的主要内容,如果未能解决你的问题,请参考以下文章

ggplot2 geom_line 的两个不同图例

R - geom_line ggplot2中的手动图例颜色

使用 R 将图例添加到结合​​ geom_line 和 geom_shape 的 ggplot

带有两行的图例标题

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

用ggplot2添加图例[重复]