R绘图 | 不等宽柱形图绘制
2023-03-07 09:47:21 时间
不等宽柱形图是一个相对于(等宽)柱形图的概念,「除了其高度以外,宽度同样代表一个指标」,可以同时反映两个具有相关性的指标大小。
分步讲解
1 构建数据集
mydata<-data.frame(Name=paste0("Sample",1:4),Width=c(35,30,10,5),Value=c(56,37,63,59))
我们希望以Name为横坐标,Value为纵坐标作柱形图,同时用柱子的宽度表示Width。
2 构建柱子的坐标
# 构建柱子X轴的起点,从0开始
mydata$xmin<-0
for (i in 2:4){
mydata$xmin[i]<-sum(mydata$Width[1:i-1])
}
# 构造矩形X轴的终点,从第一个柱子的宽度开始
for (i in 1:4){
mydata$xmax[i]<-sum(mydata$Width[1:i])
}
3 ggplot作图
# 作图
ggplot(mydata)+
geom_rect(aes(xmin=xmin,xmax=xmax,ymin=0,ymax=Value,fill=Name),
color="black",size=0.25,alpha=0.6)+
ylab("Value")+
xlab("Width")+
theme_bw()
作图时只需要将柱子的四个坐标映射给geom_rect,一张不等宽柱状图就完成啦!
如果想更换为条形图,只需要在最后加上coord_flip()。
# 作图
ggplot(mydata)+
geom_rect(aes(xmin=xmin,xmax=xmax,ymin=0,ymax=Value,fill=Name),
color="black",size=0.25,alpha=0.6)+
ylab("Value")+
xlab("Width")+
theme_bw()+
coord_flip()
完整代码
# 构建数据集
mydata<-data.frame(Name=paste0("Sample",1:4),Width=c(35,30,10,5),Value=c(56,37,63,59))
mydata$xmin<-0
for (i in 2:4){
mydata$xmin[i]<-sum(mydata$Width[1:i-1])
}
# 构造矩形X轴的终点(最大点)
for (i in 1:4){
mydata$xmax[i]<-sum(mydata$Width[1:i])
}
# 作图
ggplot(mydata)+
geom_rect(aes(xmin=xmin,xmax=xmax,ymin=0,ymax=Value,fill=Name),
color="black",size=0.25,alpha=0.6)+
ylab("Value")+
xlab("Width")+
theme_bw()
相关文章
- APN 计划新成员和更新于AWS re:Invent 2018 上发布
- 隆重推出 AWS 设备资格计划
- 隆重推出 AWS 容器能力计划
- 自 2019 年起对 APN 等级、权益和要求做出更改的公告
- 了解 AWS re:Invent 大会新发布的内容 – 12 月 AWS 在线技术讲座
- 在 mu 中推出对 EKS 的支持
- 新增功能 – AWS Toolkits for PyCharm、IntelliJ(预览版)和 Visual Studio Code(预览版)
- 11 月 30 日,星期五:re:Invent 大会举行开源会议
- 新增功能 – AWS Well-Architected Tool – 根据最佳实践检查工作负载
- 新增功能 – 机器学习算法和模型包现已在 AWS Marketplace 上线
- Amazon DynamoDB On-Demand – 无需规划容量,采用按请求付费的定价模式
- 新增功能 – 休眠您的 EC2 实例
- python3_GUI编程
- AWS Cloud Map:轻松创建和维护应用程序的自定义地图
- 新推出 AWS Resource Access Manager – 跨账户资源共享
- re:Invent 2018 大会 AWS 发布、预览和预告 – Andy Jassy 主题演讲
- 全新 AWS License Manager – 管理软件许可证并强制实施许可规则
- 新增功能 – Amazon FSx for Lustre
- 新增功能 – 适用于 Windows 文件服务器的 Amazon FSx – 快速、完全托管、安全的服务
- 隆重推出与 AWS Security Hub 集成的 Cloud Custodian