如何在R的ggplot2中为胜负Sparkline条形图设置差异化颜色?
解决方案
你可以通过映射填充色到胜负变量,再手动指定对应颜色的方式实现需求,修改后的代码如下:
puck <- data.frame(game=c("g1", "g2", "g3", "g4"), wnls=c(-1, 1, -1, 1)) library(ggplot2) # 带颜色区分的胜负Sparkline条形图 plot1 <- ggplot(data=puck, aes(x=game, y=wnls, fill=factor(wnls))) + geom_bar(stat="identity", width=0.5) + # 指定胜利(1)为蓝色,失败(-1)为红色 scale_fill_manual(values = c("-1" = "red", "1" = "blue"), # 可选:修改图例标签更直观 labels = c("失败", "胜利")) + # 可选:自定义图例标题 guides(fill=guide_legend(title="胜负结果")) plot1
关键说明:
- 在
aes()中添加fill=factor(wnls),将数值型的胜负变量转为分类变量,以此作为颜色映射的依据 scale_fill_manual()用于手动指定每个分类对应的颜色,同时可自定义图例的标签与标题- 若不需要显示图例,直接在代码末尾添加
theme(legend.position = "none")即可
内容的提问来源于stack exchange,提问作者user2561726
相关产品推荐
相关产品推荐

