ggplot用viridis填充因子变量报错:Binned scales only support continuous data
问题解决:ggplot使用viridis配色时报错“Binned scales only support continuous data”
错误核心原因
你调用的scale_fill_viridis_b()是针对连续型数据的分箱配色函数,但你的Tier是因子(离散型变量),数据类型不匹配导致报错。
代码修正细节
除了配色函数,代码里还有两处语法错误需要修正:
gqtitle是拼写错误,正确写法为ggtitleelement_text(angle: 90)里的冒号要改成等号,R语言中参数赋值使用=而非:
修正后的完整代码
ggplot(tiering, aes(x = Participant.Type)) + geom_bar(aes(fill = Tier)) + theme_classic() + ggtitle("Main phenotypes") + labs(x = "Participant Category", y = "Frequency") + theme(axis.text.x = element_text(angle = 90, just = 0.5)) + scale_y_continuous(limits = c(0, 300)) + scale_fill_viridis_d() # 替换为离散变量适配的viridis配色函数
额外说明
geom_bar默认会自动统计每个分组的频数,无需在aes中手动指定..count..,直接定义x轴变量即可正常显示计数。- 如果你的
Tier是有序因子,还可以通过scale_fill_viridis_d(option = "plasma", direction = 1)调整配色预设方案(可选"viridis""magma""plasma"等)和颜色渐变方向。
内容的提问来源于stack exchange,提问作者Ar1229
相关产品推荐
相关产品推荐

