R语言绘图——线图

 

  • 数据概要
> setwd('E:/Rworking ')
> wendu2<-read.table("最低日温.csv",sep=',',header=T,stringsAsFactors=F)
> head(wendu2)
      Date wendu
1 1981/1/1  20.7
2 1981/1/2  17.9
3 1981/1/3  18.8
4 1981/1/4  14.6
5 1981/1/5  15.8
6 1981/1/6  15.8

我们得到了一个时间和温度值的数据框,我们来看一下每列数据的类型

> class(wendu2$Date
+ )
[1] "character"
> class(wendu2$wendu)
[1] "character"

都是字符串类型,因此在作图之前,我们要对数据进行转换,首先要知道我们需要什么类型的数据。

我们要以时间为横坐标,温度数值为纵坐标,因此进行如下转换

rm(list = ls())
library(ggplot2)
#读取数据
wendu2<-read.table("最低日温.csv",sep=',',header=T,stringsAsFactors=F)
wendu2$Date<-as.Date(wendu2$Date)#将日期转换成日期型数据
wendu2$wendu<-as.numeric(wendu2$wendu)#将value转换成数值型数据

接下来用ggplot2包绘图,

这篇博客写的十分详尽

https://www.cnblogs.com/jiangmiaomiao/p/7073001.html

线图

> p <- ggplot(wendu1, aes(x=wendu1$Date, y=wendu1$wendu,group = 1)) +
+     geom_line()+
+     xlab("")
> p

R语言绘图——线图_第1张图片

   现在对其进行优化,给x,y轴添加标签,将线的颜色设置为蓝色

> p <- ggplot(wendu1, aes(x=wendu1$Date, y=wendu1$wendu,group = 1)) +
+     geom_line(color="steelblue")+
+     xlab("时间")+
+     ylab('温度')
> p
> 

R语言绘图——线图_第2张图片

继续优化,改变x轴的坐标写法

p <- ggplot(wendu1, aes(x=wendu1$Date, y=wendu1$wendu,group = 1)) +
  geom_line(color="steelblue")+
  xlab("时间")+
  ylab('温度')+
  scale_x_date(limit=c(as.Date("1981-01-01"),as.Date("1990-12-31")),date_labels = "%m-%Y")

R语言绘图——线图_第3张图片

添加参考线和标签

p <- ggplot(wendu1, aes(x=wendu1$Date, y=wendu1$wendu,group = 1)) +
  geom_line(color="steelblue")+
  xlab("时间")+
  ylab('温度')+
  scale_x_date(limit=c(as.Date("1981-01-01"),as.Date("1990-12-31")),date_labels = "%m-%Y")+
  geom_hline(yintercept=mean(wendu1$wendu,na.rm = T), color="orange", size=.5)+
  geom_vline(xintercept=mean.Date(wendu1$Date), color="orange", size=.5)+
  annotate(geom="text", x=wendu1$Date[wendu1$wendu==max(wendu1$wendu)], y=max(wendu1$wendu), label="历年最大值")
p

R语言绘图——线图_第4张图片

数据太多,看起来不是很直观,接下来可以只画两年的数据

rm(list = ls())
library(ggplot2)
wendu2<-read.table("最低日温.csv",sep=',',header=T,stringsAsFactors=F)
#将日期转换成日期型数据
wendu2$Date<-as.Date(wendu2$Date)
#将value转换成数值型数据
wendu2$wendu<-as.numeric(wendu2$wendu)

wendu1<-na.omit(wendu2)
p <- ggplot(wendu1, aes(x=wendu1$Date, y=wendu1$wendu,group = 1)) +
  geom_line(color="green")+
  xlab("时间")+
  ylab('温度')+
  scale_x_date(limit=c(as.Date("1981-01-01"),as.Date("1982-12-31")),date_labels = "%m-%Y")
p

R语言绘图——线图_第5张图片

 

 

你可能感兴趣的:(R语言学习笔记)