R语言绘制双坐标轴的方法初探

浏览: 3171

作者:吴健 中国科学院大学 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







推荐 0
本文由 R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册