用R中ggplot2包做箱线图、折线图、条形图(横、纵)
使用ggplot2完成画图工作
下载R软件和RStudio,为了书写方便在RStudio(类似于Matlab)中写代码。
下载ggplot2包:install.packages(“tidyverse”)
加载ggplot2包:library(ggplot2)
建议
先看结果图,再看代码!!!节省时间!!!
箱线图
代码:
data<- read.csv("D:/abc4.csv", header=T) #header判断导入数据有无表头,T/F
bp <- ggplot(data,aes(x=SgnDate, y=NewConfirmed, fill=SgnDate)) + geom_boxplot()
bp+labs(x="SgnDate",y="NewConfirmed",title="箱线图") #横纵坐标+标题
bp #显示图像
结果:
分类变量是SgnDate
分类变量有数值,有level,level是与横坐标标签的顺序和图例的顺序有关系
#更改横坐标标签顺序
data$SgnDate=factor(data$SgnDate,levels=c("2020/1/23","2020/2/1"))
折线图
时间序列数据+两条折线+图例+画垂直线段
data <-read.csv("D:/CAH.csv", header=F) #导入没有表头的数据
t<-ts(data,frequency=1,start=as.Date("2020/1/23")) #定义data为时间序列数据,按天计算
s<-as.Date("2020/1/23")
date<-seq(from=s,by=1,length.out=56) #56为时间长度
t<-data.frame(date,t) #在原数据前面添加了一个时间信息date, 新数据集定义为t
library(ggplot2) #加载ggplot2包
g<ggplot(t,aes(x=date))+geom_point(aes(y=V19,color="#2ec1e6"),size=1.5,alpha=0.6)+geom_line(aes(y=V19,color="#2ec1e6"))+geom_point(aes(y=V22,color="#bcf511"),size=1.5,alpha=0.6)+geom_line(aes(y=V22,color="#bcf511"))+geom_vline(aes(xintercept=as.Date("2020-2-12")),colour="#948b8d",linetype="dashed") #实现画两条折线+一条垂直线+图例(标题和标签可修改)
g<-g+labs(x="",y="",title="湖北新增治愈/新增确诊病例趋势图