繁体   English   中英

R:用一个变量分别画线,用另一个变量上色

[英]R: Plot lines separately by one variable, colored by another

我敢肯定这已经做过很多次了,但是显然我没有使用正确的术语进行搜索。

我在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)')

这使得:

剧情

与您期望的结果略有不同,但是就在这里。

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

情节

最终解决方案:团队审美。 (感谢@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)')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM