R语言 使用ggplot在同一图上绘制多个时间序列图
时间序列数据是分层次的数据。 它是一个与时间戳相关的数据系列。时间序列的一个例子是某一时期的黄金价格或温度范围或每年暴风雨期间的降水量。为了将这些数据可视化,R提供了一个方便的库,叫做 ggplot。 使用ggplot,我们可以看到各种各样的图。 除了ggplot之外,R还提供了一些库来清理数据,并对其进行转换或处理,以适应我们的可视化要求。
本文将研究一个来自R数据集的数据集和一个来自CSV文件的数据集。
数据集1:2020年3月的欧盟Covid死亡人数
该数据集为我们提供了2020年3月所有欧洲国家的Covid-19的每日死亡人数。我们将绘制每个国家的死亡人数(Y轴)与日(X轴)的对比。
使用中的数据可以从这里下载。
绘图 1:每日死亡人数
绘图的步骤如下。
- 打开R Studio,打开一个R笔记本(有更多选项)。
- 把这个文件保存为.rmd,最好和你的数据放在同一个文件夹里。
- 选择工作目录到你的数据所在的地方
- 导入所有的R库
- 从CSV中读取数据。
- 上面的数据分布在各栏中。为了使绘图更容易,我们需要将数据格式化为所需的格式。
- 绘制数据
- 显示数据
例子
library(ggplot2)
library(reshape2)
library(dplyr)
covid1 =(read.csv(file="EUCOVIDdeaths.csv",header=TRUE)[,-c(2)])
head(covid1)
covid_deaths <- melt(covid1,id.vars=c("Country"),value.name="value",
variable.name="Day")
head(covid_deaths)
covid_plot <- ggplot(data=covid_deaths, aes(x=Day, y=value, group = Country,
colour = Country))
+ geom_line() +labs(y= "Deaths", x = "Day")
covid_plot + ggtitle("Daily Deaths for European countries in March,2020")+geom_point()
covid_plot
输出
每日死亡人数的时间序列图,包括点
图2:绘制人均ovid死亡人数图
我们将使用与前一个例子相同的数据。但这里我们将处理人均数据。
library(ggplot2)
library(reshape2)
library(dplyr)
covid1 =(read.csv(file="EUCOVIDdeaths.csv",header=TRUE)[,-c(2)])
head(covid1)
covid_perCapita <- covid1[,c(2:17)] / covidPopulationM
covid_perCapitaCountry <- covid1$Country
head(covid_perCapita)
covid_perCapita_deaths <- melt(covid_perCapita,id.vars=c("Country"),
value.name="value", variable.name="Day")
covidPerCapitaPlot <- ggplot(data=covid_perCapita_deaths,
aes(x=Day, y=value, group = Country, colour = Country)) + geom_line()
+labs(y= "Deaths per Capita", x = "Day") + theme_bw(base_size = 16)
+ theme(axis.text.x=element_text(angle=60,hjust=1))
+ ggtitle("Day-wise Covid-Deaths per Capita in Europe in 2020")
covid_perCapitaPlot
输出
人数图
数据集2:热带风暴期间美国各县的降雨量。
首先安装软件包:Hurricaneexposuredata
在安装该软件包之前,请检查R的版本。要在RStudio中检查R的版本,请进入工具->全局选项。在打开的窗口中,在基本标签中,我们可以看到R的版本。
#如果R的版本大于4
install.packages("hurricaneexposuredata")
#对于低于4.0的R版本,请这样安装
install.packages('hurricaneexposuredata', repos='https://geanders.github.io/drat/', type='source')
例子
library(hurricaneexposuredata)
library(hurricaneexposure)
rain_data <- county_rain(counties = c("01001","36005", "36047",
"36061","36085", "36081",
"36119","22071", "51700"),
start_year = 1995, end_year = 2005, rain_limit = 50,
dist_limit = 500, days_included = c(-1, 0, 1))
ggplot(data = rain_data, aes(x=fips, y=tot_precip, group=storm_id,
color=storm_id)) + geom_line()
输出