You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正含双数据集的并列条形图+折线图的配色与变量报错

问题解决:ggplot并列条形图填充色异常+变量未找到报错

核心问题分析

  1. 条形填充色为灰色:你在aes()里只指定了colour=count,这个参数控制的是条形的边框颜色,填充色默认是灰色,需要添加fill映射。
  2. object 'count' not found报错:R是大小写敏感的!你的数据集p里定义的是大写的Count,但代码里用了小写的count,变量名不匹配导致报错。
  3. 数据集构造错误:你提供的p数据集代码里,Year(5个值)、Count(2个值)、Value(11个值)长度不匹配,无法正确生成长格式数据,得先修正这个。

修正后的完整代码

第一步:正确构造数据集

# 构造数据集p:确保每个Year+Count组合对应一个Value(5年×2类型=10个值,修正你提供的Value长度)
p <- expand.grid(Year = c(2012,2013,2014,2015,2016),
                 Count = c("type1","type2"))
p$Value <- c(1,5,4,9,7,11,19,16,2,14) # 这里取你提供的前10个值,可根据实际数据调整

# 构造数据集q
q <- data.frame(Year = c(2012,2013,2014,2015,2016),
                proportion = c(0.5,0.2,0.4,0.6,0.8))

第二步:修正可视化代码

mycolors <- c("lightsteelblue", "darkgrey", "darkseagreen") # 调整顺序:对应type1、type2、折线

ylim.prim <- c(0, 20)   
ylim.sec <- c(0, 1)
b <- diff(ylim.prim)/diff(ylim.sec)
a <- ylim.prim[1] - b*ylim.sec[1]

example <- ggplot(data=p, aes(x=Year, y=Value*10000, colour=Count, fill=Count)) +  
  geom_bar(stat="identity", width=.5, position = "dodge")+ 
  geom_line(data=q, aes(y=a+proportion*b), color=mycolors[3], linewidth=1.2)+ 
  scale_y_continuous("Counts, per 10,000 events", 
                     sec.axis = sec_axis(~ (. - a)/b, name = "Percent Success")) + 
  scale_x_continuous("Year", breaks=seq(2012,2016, by=1)) + # 修正x轴范围,匹配现有数据
  ggtitle("Example figure comparing counts and success rate")+ 
  theme_bw()+ 
  scale_fill_manual(values=mycolors[1:2], labels=c("Type1","Type2"))+ 
  scale_color_manual(values=mycolors, labels=c("Type1","Type2","Proportion"))+ 
  theme(legend.position="bottom")
example

关键修正点说明

  • 统一变量名:把数据集和代码里的变量名统一为Count(或全小写count,保持一致即可)。
  • 同时映射colour和fill:在aes()里添加fill=Count,让条形填充色按类型区分。
  • 颜色映射对应:调整mycolors的顺序,让scale_fill_manual对应两个条形类型,scale_color_manual包含折线的颜色,标签也对应正确。
  • 修正x轴范围:原代码x轴breaks到2022,但数据只有到2016,避免空轴。

内容的提问来源于stack exchange,提问作者the_mailman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:02:11