点击上方蓝色字体,关注我们
作者简介作者:吴健 中国科学院大学 R语言、统计学爱好者,尤其擅长R语言和Arcgis在生态领域的应用分享
个人公众号:统计与编程语言
在数据可视化过程中,我们经常会将两种不同类型图表组合在同一个“画布”上,这就是大家所谓的双坐标轴组合图。近期有小伙伴问我怎么基于R语言绘制双坐标轴,因此小编整理了两种绘制双坐标图的方法供大家参考。
1.基于plotrix包的twoord.plot函数
加载程序包
library(plotrix)
构造示例数据集
Date <- seq(from=as.Date(‘2015-01-01’), to=as.Date(‘2015-12-01’), by=’month’)
Consumers <- c(100,80,120,153,200,188,220,322,300,321,282,304)
Amount <- c(1000,840,1458,1844,2045,2000,2548,5081,5000,5200,4800,4971)
df1 <- data.frame(Date=Date, Consumers=Consumers,Amount=Amount)
基于twoord.plot绘制双坐标图(两个条形图)
twoord.plot(lx=df1$Date, ly=df1$Consumers,rx=df1$Date,ry=df1$Amount,
main=’双轴的两条线图’,xlab=’月份’, ylab=’会员人数’, rylab=’总消费额’, type=c(‘line’,’line’))
基于twoord.plot绘制双坐标图(一个条形图加线图)
twoord.plot(lx=df1Date, ly=df1Consumers,rx=df1Date,ry=df1Amount,
main=’双轴的两条线图’,xlab=’月份’, ylab=’会员人数’, rylab=’总消费额’, lcol=’steelblue’, type=c(‘bar’,’l’),
xtickpos=as.numeric(df1Date), xticklab=as.character(df1Date),
rytickpos=seq(500,5000,by=1500), halfwidth=8,do.first=’plot_bg(col=\’gray\’);grid(col=\’white\’,lty=2)’)
2.基于ggplot2绘制双坐标条形图
加载程序包
library(ggplot2)
library(ReadAxfBOM)
构造示例数据集
obs <- ReadAxfBOM(“http://www.bom.gov.au/fwo/IDV60901/IDV60901.94866.axf“)
head(obs)
基于ggplot2绘制双坐标图
p <- ggplot(obs, aes(x = Timestamp))
p <- p + geom_line(aes(y=air_temp, colour = “Tempeture”))
p <- p + geom_line(aes(y=rel_hum/5, colour = “Humidity”))
p <- p + scale_y_continuous(sec.axis = sec_axis(~.*5, name = “Relative humidity [%]”))
p <- p + scale_colour_manual(values = c(“blue”, “red”))
p <- p + labs(y = “Air temperature [°C]”,x = “Date and time”,colour = “Parameter”)
p <- p + theme(legend.position = c(0.8, 0.9))
p
往期回顾:
R语言绘制流程图(一)
R语言绘制流程图(二)
大家都在看
2017年R语言发展报告(国内)
精心整理 | R语言中文社区历史文章合集(作者篇)
精心整理 | R语言中文社区历史文章整理(类型篇)
公众号后台回复关键字即可学习
回复 爬虫 爬虫三大案例实战
回复 Python 1小时破冰入门
回复 数据挖掘 R语言入门及数据挖掘
回复 人工智能 三个月入门人工智能
回复 数据分析师 数据分析师成长之路
回复 机器学习 机器学习的商业应用
回复 数据科学 数据科学实战
回复 常用算法 常用数据挖掘算法
请发表评论