R语言之【用ggplot2作折线图】

零基础的话先看:

ggplot2应该是R语言中最有名的程序包了,至少也是可视化方向里最有名的了。不过,所有程序包使用第一步都还是安装加调用(在“基础必备代码”那一篇里有详细说明)。

install.packages("ggplot2")
library(ggplot2)

工具好了,要有材料。数据是各国财富500强公司年度变化数据(下面是下载链接)。

https://github.com/bctclc/sample_data_for_R_viz/blob/master/fortune_500_by_country.csv

导入数据。

setwd("C:\\Users\\***")
fortune500 <- read.csv("fortune_500_by_country.csv", stringsAsFactors = FALSE)

用excel做出来大概就是这样。(插句嘴,我觉得简单的数据和可视化用excel都完全没有问题,而且更省事儿,excel中的制图复制进Illustrator也是分层可修改的。)

还是从单线折线图开始,以下图为第一个小目标。

数据很简单,就是表格中的前两列。

代码也很简单,就两行(放在一行也可以,只是为了清晰一般在加号处分行)。

ggplot(data=fortune500, aes(x=year, y=China))+
  geom_line()

第一行的作用 选择数据 ,语法就是ggplot(data=数据名, aes(x=横轴数据, y=纵轴数据)). 单跑这句会出现一个底层。虽然没有最核心的图,但已经有了一个很重要的元素——数据范围,比如年份就是在2000年到差不多2020年之前。

第二行的作用是 选择图表类型 。同一个数据往往有多种可视化表达。比如这里的数据,除了折线图,柱状图、气泡图也都是OK的。geom_line()就是指明说这个数据要用折线图来表达。加上去之后图的主角也就出来了。

(数据的选择其实也可以放在这句里完成,我个人是比较习惯第一句里去完成。如果放在第二句里完成就是下面这样。)

ggplot()+
  geom_line(data=fortune500,aes(x=year, y=China))

修饰什么的暂且按下,因为现在有一个特别迫切的问题,怎么把更多的折线叠加上去。ggplot代码中的 加号的作用可以理解成分层 ,每个加号之间都是单独的一个图层。想要画更多的折线,第一个想法就是,既然我已经画好了中国的这条线,那我再把别国的折线用同样的方式叠加上去就好。这个也确实是可以实现的。

ggplot()+