




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第R语言中ggplot2绘制双坐标轴图R包ggplot2绘图精美,可以做出很复杂的图形,深受用户喜爱。它的作者hadley并不推荐使用ggplot2绘制双坐标轴图,认为这样会增加读图的难度,但是目前需要双坐标轴图应用的场景还是很多,如下图形直方图和曲线分别有不同的坐标轴,表示不同的意思,图片展示内容比较丰富
今天我们通过我们的汽车销售数据(公众号回复:汽车销售,可以获得数据)来演示一下ggplot2绘制双坐标轴图,主要是通过sec.axis函数进行转换,进行第二个坐标轴的转换。我们先来导入数据
library(foreign)
library(ggplot2)
library(plyr)
bc-read.spss("E:/r/test/tree_car.sav",
use.value.labels=F,to.data.frame=T)
我们来看下数据,car就是汽车售价,age是年龄,gender是性别,inccat是收入,这里分成4个等级,ed是教育程度。
我们用这个数据生成两个子数据,展示不同教育程度人群购车的区别,继续使用原来的summarySE函数生成数据,想了解这个函数的看《R语言绘制带误差和可信区间的折线图》这篇文章,主要是利用这个函数生成不同类型的数据分析指标,函数的代码如下:
summarySE-function(data=NULL,measurevar,groupvars=NULL,na.rm=FALSE,
erval=.95,.drop=TRUE){
library(plyr)
#NewversionoflengthwhichcanhandleNA's:ifna.rm==T,don'tcountthem
length2-function(x,na.rm=FALSE){
if(na.rm)sum(!is.na(x))
elselength(x)
#Thisdoesthesummary.Foreachgroup'sdataframe,returnavectorwith
#N,mean,andsd
datac-ddply(data,groupvars,.drop=.drop,
.fun=function(xx,col){
c(N=length2(xx[[col]],na.rm=na.rm),
mean=mean(xx[[col]],na.rm=na.rm),
sd=sd(xx[[col]],na.rm=na.rm)
measurevar
#Renamethe"mean"column
datac-rename(datac,c("mean"=measurevar))
datac$se-datac$sd/sqrt(datac$N)#Calculatestandarderrorofthemean
#Confidenceintervalmultiplierforstandarderror
#Calculatet-statisticforconfidenceinterval:
#e.g.,ifervalis.95,use.975(above/below),andusedf=N-1
ciMult-qt(erval/2+.5,datac$N-1)
datac$ci-datac$se*ciMult
return(datac)
这个函数并不是今天的主要内容,主要是看我们生成的数据
carss-summarySE(bc,measurevar="car",groupvars=c("gender","ed"))
carss1-summarySE(bc,measurevar="car",groupvars=c("inccat","ed"))
我们来看看生成的两个数据
Carss
carss1
carss1和carss都有ed这个数据,carss1的数据比carss多,carss1有inccat这个指标carss没有
我们先画一个carss数据的教育和汽车售价的直方图
ggplot()+
geom_col(data=carss,aes(x=ed,y=car),fill="#6794a7")
上图展示了不同教育程度买车的情况,假设我们想把carss1这个数据的inccat和ci这个指标映射进上图中(不管临床意义,只是展示数据映射),我们可以看到ci这个指标很小0-5这样,而汽车这个指标的范围是0-80,不能通过同一坐标轴展示,所以只能通过分轴展示。主要是通过rescale函数先把ci这个指标在在0-80区间进行标准化转换,然后在投射于右坐标轴。
先把inccat转换成因子
carss1$inccat-as.factor(carss1$inccat)
绘图
ggplot()+
geom_col(data=carss,aes(x=ed,y=car),fill="#6794a7")+
geom_line(data=carss1,aes(x=ed,y=rescale(ci,c(0,80)),colour=inccat,group=inccat),size=1.5)+
geom_point(data=carss1,aes(x=ed,y=rescale(ci,c(0,80))),shape=21,fill="white",size=4)+
scale_y_continuous(breaks=pretty_breaks(4),
sec.axis=sec_axis(~rescale(.,c(0,5)),name="ci",labels=sprintf('%.5f',(0:5))))
图形左轴表示直方图中购车情况,右轴表示不同收入人群的ci情况,把图形进一步美化一下
ggplot()+
geom_col(data=carss,aes(x=ed,y=car),fill="#6794a7")+
geom_line(data=carss1,aes(x=ed,y=rescale(ci,c(0,80)),colour=inccat,group=inccat),size=1.5)+
geom_point(data=carss1,aes(x=ed,y=rescale(ci,c(0,80))),shape=21,fill="white",size=4)+
scale_y_continuous(breaks=pretty_breaks(4),
sec.axis=sec_axis(~rescale(.,c(0,5)),name="ci",labels=sprintf('%.5f',(0:5))))+
labs(title="ThisisaTitle!",subtitle="ThisisaSubtitle",caption="ThisisaCaption")+
theme_minimal(base_size=16)%+r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司高管管理职责证明书(5篇)
- 学校食堂供应管理协议
- 能源资源节约和综合利用协议
- 电商行业网络购物退换货免责合同
- 全面理解2025年行政管理中的公文处理试题答案
- 2025行政管理中市政学的重要性试题及答案
- 现代管理者的决策典型案例分析试题及答案
- 解析2025年市政学考试试题及答案的技巧
- 2025年合同将满到期后员工能否获得年终奖
- 2025年湖南省国有企业土地使用权转让合同书
- 加快建设教育强国专题课件ppt
- 燃气公司生产运营管理制度
- 新媒体数据分析高职PPT完整全套教学课件
- 肺功能检查考试试题
- 轻度运动损伤的自我处理
- 学管师薪资体系
- 尾矿库名词解释
- 《跟随佐藤学做教育 学习共同体的愿景与行动》读书笔记思维导图PPT模板下载
- 北师大版数学七年级下册第一单元综合测试卷(解析版)
- GB/T 4942-2021旋转电机整体结构的防护等级(IP代码)分级
- GB/T 20431-2006声学消声器噪声控制指南
评论
0/150
提交评论