柱状图设置每个柱子的宽度、柱状图、R语言柱状图

关注公众号“R医学”,获取R语言学习、绘图、建模资源

晓晓
2023-07-17
#加载函数包
library(ggplot2)
library(hrbrthemes)

#构建数据
data <- data.frame(
  group=c("A ","B ","C ","D ") , 
  value=c(33,62,56,67) , 
  number_of_obs=c(150,500,400,200)
)

#查看数据
data
##   group value number_of_obs
## 1    A     33           150
## 2    B     62           500
## 3    C     56           400
## 4    D     67           200
#计算每一个柱子的左右边界
data$right <- cumsum(data$number_of_obs) + 30*c(0:(nrow(data)-1)) #将一个数据集中的每个观察值(number_of_obs)向右移动(宽度累加+间隔累加)
data$left <- data$right - data$number_of_obs 


#再次查看数据
data
##   group value number_of_obs right left
## 1    A     33           150   150    0
## 2    B     62           500   680  180
## 3    C     56           400  1110  710
## 4    D     67           200  1340 1140
#画图
ggplot(data, aes(ymin = 0)) + 
  geom_rect(aes(xmin = left, 
                xmax = right, 
                ymax = value, 
                colour = group,
                fill = group)) +
  xlab("number of obs") + 
  ylab("value") +
  theme_ipsum() +
  theme(legend.position="none") 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值