如何使用ggplot2绘制蝴蝶图
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,如何使用ggplot2绘制蝴蝶图,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一个小案例,使用ggplot2绘制蝴蝶图,
千家信息网最后更新 2025年12月02日如何使用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安全错误
数据库的锁怎样保障安全
腾讯云服务器案例登陆
方舟pve服务器可以添加模组吗
嵌入式软件开发年纪越大
eufy服务器在哪
泰州小型网络技术价格查询
cmd登录数据库改密码
怎么查软件开发商电话
中国互联网企业算高科技吗
vs连接数据库数据源
教学软件开发案例
使用create创建数据库
网络技术交流会开场白
mdf数据库要用什么打开
天涯明月刀服务器排名
杭州手机软件开发报价单
区块链节点服务器
手机登录服务器密码已更改
什么是危害网络安全罪
word邮件能连接多个数据库吗
年鉴网络数据库
浙江协云网络技术有限公司
使用命令为数据库备份
图数据库哪个更好
网络安全特点规律
备用i代理服务器
mac连接打印服务器
佛山市优通网络技术
银川市软件开发平台
怎么把光影加到我的世界服务器
上海众联网络技术