R:用一个变量分别绘制线条,用另一个变量着色

时间:2014-07-18 13:18:32

标签: r ggplot2

我确信这已经完成了很多次,但显然我没有使用正确的术语进行搜索。

我在R中有一些时间序列数据,如下所示:

      country year      deaths         region global.region
1 Afghanistan 2006 0.095830775 Asia & Pacific  Global South
2 Afghanistan 1994 0.127597064 Asia & Pacific  Global South
3     Algeria 2000 0.003278038    Arab States  Global South
4     Algeria 2001 0.003230578    Arab States  Global South
5     Algeria 1998 0.006746176    Arab States  Global South
6     Algeria 1999 0.019952364    Arab States  Global South
...

基本上,我想按国家/地区绘制所有线条,但我希望它们按地区着色(并在图例中标注)。我希望在不尝试建立平均模型的情况下查看数据中的一些区域趋势(部分原因是因为我想看到异常值,部分原因是很多国家都缺少数据,我认为一个好的区域模型可能对我来说很难在这一点上,最好只是误导。)

因此,最后我将为布基纳法索,阿尔及利亚和科特迪瓦绘制单独的线条,但它们都将是橙色的。我将为阿富汗,巴基斯坦和伊朗分别划线,但他们都是蓝色的。

最好用ggplot2完成,因为那是我正在学习的绘图库。但也许在R中有一种标准的方法可以在所有(大多数)绘图库中运行?

编辑:最终解决方案:团体审美。 (谢谢@baptiste)

qplot(data=df, x=year, y=deaths, color=region, group=country) +
    geom_line() +
    xlab('Year') + ylab('Deaths per 100,000') + ggtitle('Deaths per 100,000 by country (WHO)')

这使得:

The plot

1 个答案:

答案 0 :(得分:1)

与您想要的结果略有不同,但在这里......

ggplot(df, aes(x = year, y = deaths)) + 
  geom_line(aes(color = country, linetype = region))

plot