我有一个R数据帧(df),我在ggplot2中将其绘制为条形图,并根据数据帧(df$type
)中的一列进行着色。现在,我使用默认的着色模式(scale_fill_brewer
)来分配颜色。
如何将黑色分配给一个值( df$type == -1
),并使用scale_fill_brewer分配其余的颜色?(所有其他df$types
都是从1到X的一组整数中的一个,其中X是唯一值的数量)
到目前为止,我已经能够通过计算出scale_fill_brewer
用于N个不同项目的颜色集,然后预先绘制黑色并将其传递给scale_fill_manual
,从而手动完成此操作。
rhg_cols1<- c("#000000","#F8766D","#7CAE00","#00BFC4","#C77CFF" )
ggplot(y=values,data=df, aes(x=name, fill=factor(type))) +
geom_bar()+ scale_fill_manual(values = rhg_cols1)
问题是,我需要一个不需要手动分配颜色的解决方案,通过使用十六进制颜色计算器来计算scale_fill_brewer
的十六进制值。
类似于:
ggplot(y=values,data=df, aes(x=name, fill=factor(type))) +
geom_bar()+ scale_fill_brewer(value(-1, "black")
谢谢!
编辑:解决方案必须适用于30种以上的颜色,并适用于ColorBrewer的"Set2“
https://stackoverflow.com/questions/6075140
复制相似问题