微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ggplot2中数据的图例

如何解决ggplot2中数据的图例

我的数据如下。

  Week Africa Americas  Asia Europe Oceania Burma Cambodia China..Guangxi. China..Yunnan. Laos Thailand Vietnam
1    5      0        6  2912      4       5     0        1              46             26    0        8       2
2    6      0       15 19827     33      12     0        1             127            117    0       19       8
3    7      0       19 42551     49      15     0        1             210            149    0       32      14
4    8      1       22 72721     57      15     0        1             238            171    0       35      16
5    9      1       28 78517    294      15     0        1             251            174    0       35      16
6   10      8      105 86698   2828      31     0        1             252            174    0       43      16

当我想在ggplot2中绘制图形时,将为我提供图形,但不会显示说明线条颜色属于哪个组的图例。如何将其添加到图形中?

enter image description here

ggplot(data=df,aes(x=Week))+
  geom_line(aes(y=Africa),color= "#8dd3c7")+
  geom_line(aes(y=Americas),color= "#ffffb3")+
  geom_line(aes(y=Asia),color= "#bebada")+
  geom_line(aes(y=Europe),color= "#fb8072")+
  geom_line(aes(y=Oceania),color= "#80b1d3")+
  geom_line(aes(y=Burma),color= "#fdb462")+
  geom_line(aes(y=Cambodia),color= "#b3de69")+
  geom_line(aes(y=China..Guangxi.),color= "#fccde5")+
  geom_line(aes(y=China..Yunnan.),color= "#d9d9d9")+
  geom_line(aes(y=Laos),color= "#bc80bd")+
  geom_line(aes(y=Thailand),color= "#ccebc5")+
  geom_line(aes(y=Vietnam),color= "#ffed6f")

我提供的数据格式是否错误,所以我不会自动执行此操作,或者我在这里做错了什么?

干杯, J

解决方法

我的建议是,您首先需要使用tidyr软件包中的collect函数将此数据帧更改为长数据帧

df % collect(df,key =“ country”,value =“ count”,3:14)

然后在ggplot中,您可以编写如下代码:

ggplot(data = df,aes(x = Week,y = count,color = country))+ geom_line()

长数据框更好,因为每一列(例如“ country”)都有一个变量,而ggplot最适合这种数据框。图例将自动显示

,

您还可以使用pivot_longer(),这是获取带有图例的图,然后像这样缩放颜色的正确方法:

library(tidyverse)
#Code
df %>% pivot_longer(-Week) %>%
  ggplot(aes(x=Week,y=value,group=name,color=name))+
  geom_line()+
  scale_color_manual(values=c("Africa"="#8dd3c7","Americas"="#ffffb3","Asia"="#bebada","Europe"="#fb8072","Oceania"="#80b1d3","Burma"="#fdb462","Cambodia"="#b3de69","China..Guangxi."="#fccde5","China..Yunnan."="#d9d9d9","Laos"="#bc80bd","Thailand"= "#ccebc5","Vietnam"="#ffed6f"))+
  labs(color='Country')

输出:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。