如何使用ggplot2绘制蝴蝶图
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,如何使用ggplot2绘制蝴蝶图,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一个小案例,使用ggplot2绘制蝴蝶图,
千家信息网最后更新 2025年02月04日如何使用ggplot2绘制蝴蝶图
如何使用ggplot2绘制蝴蝶图,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
一个小案例,使用ggplot2绘制蝴蝶图,在巩固温习条形图坐标轴翻转的同时,重新熟悉一下如何利用grid系统进行版式布局。
原图如下:
该图表思路很简单,就是两个条形图通过坐标轴翻转,使用grid包中的版式布局函数进行合理的版式拼接即可。
以下是整个案例代码部分,因为涉及到的知识点不复杂,这里不做详细注释:
第一部分:制作右侧的柱形图:
#导入工具包:
library("ggplot2")
library("dplyr")
library("grid")
library("showtext")
library("Cairo")font.add("myfont","msyh.ttc")
#生成图形所需数据集:
mydata<-data.frame(id=1:14,A=c(5.0,14.7,2.5,8.5,5.1,6.9,7.7,6.8,4.4,4.9,5.3,1.0,0.9,7.8),B=c(31.3,24.7,17.8,17.2,15.3,14.3,13.9,13.9,12.4,10.0,6.5,4.2,2.5,0.9),Label=c("Website","Customer & Employee Referral","Webinar","Facebook/Twitter/Other Social","Marketting & Advertising","Paid Serch","Other","Sales generated","Tradeshows","Parter","Linkedin","Events","Lead list","Emial Campaign"))
p1<-ggplot(mydata)+geom_hline(yintercept=mean(mydata$A),linetype=2,size=.25,colour="grey")+geom_bar(aes(x=id,y=A),stat="identity",fill="#E2BB1E",colour=NA)+ylim(-5.5,16)+scale_x_reverse()+geom_text(aes(x=id,y=-4,label=Label),vjust=.5)+geom_text(aes(x=id,y=A+.75,label=paste0(A,"%")),size=4.5,family="myfont",fontface="bold")+coord_flip()+theme_void();p1
#图一:
第二部:制作左侧柱形图:
p2<-ggplot(mydata)+geom_hline(yintercept=-mean(mydata$B),linetype=2,size=.25,colour="grey")+geom_bar(aes(x=id,y=-B),stat="identity",fill="#C44E4C",colour=NA)+ylim(-40,0)+scale_x_reverse()+geom_text(aes(x=id,y=-B-1.75,label=paste0(B,"%")),size=4.5,family="myfont",fontface="bold")+coord_flip()+theme_void();p2
#图二效果
图形整合:
setwd("E:/数据可视化/R/R语言学习笔记/数据可视化/ggplot2/优秀R语言案例")CairoPNG(file="butterfly.png",width=1200,height=696)showtext.begin()grid.newpage()pushViewport(viewport(layout=grid.layout(7,11)))vplayout<-function(x,y){viewport(layout.pos.row =x,layout.pos.col=y)}print(p2,vp=vplayout(2:7,1:5))print(p1,vp=vplayout(2:7,6:11))grid.text(label="Opportunity-to-Deal\nConversion Rate",x=.80,y=.88,gp=gpar(col="black",fontsize=15,fontfamily="myfzhzh",draw=TRUE,just="centre"))grid.text(label="Lead-to-Opportunity\nConversion Rate",x=.20,y=.88,gp=gpar(col="black",fontsize=15,fontfamily="myfzhzh",draw=TRUE,just="centre"))grid.text(label="Webinars convert opportunities,but don't close",x=.50,y=.95,gp=gpar(col="black",fontsize=20,fontfamily="myfzhzh",draw=TRUE,just="centre"))showtext.end()dev.off()
注意以上代码中所使用的coord_flip函数、geom_text函数以及最后的grid系列函数的用法。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
函数
数据
案例
版式
蝴蝶
代码
图形
坐标
坐标轴
布局
条形
知识
语言
制作
可视化
学习
帮助
优秀
复杂
清楚
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库视图建立视图V
英雄联盟服务器崩溃2月
怎么修改移动服务器密码
陆良县拓风网络技术有限公司
阿言服务器被炸
网络技术精英学徒一个月多少钱
2020 网络安全标准论坛
数据库系统工程师攻略
南京华博互联网科技
好搜网络技术有限公司怎么样
cvr存储服务器托盘
汕头回收服务器内存条
汽车车载网络技术的作用
宁国先进软件开发服务攻略
性能测试占用哪些服务器
南通专业网络安全准入控制公司
网上防骗数据库
脉动网络技术有限公司怎么样
上海邦芒拼网络技术
当今网络安全管理现状分析
数据库培训的意义
山东省互联网科技
15项互联网科技成果
湖州推广网络技术推荐咨询
关于网络安全重要讲话
数据库单表同步
基因有关的数据库
怎么查到服务器地址
金山的服务器
万能钥匙连接网络安全不