我想根据累积概率将点图的颜色更改为淡入淡出。我正在使用hsv获取每个单独数据点所需的颜色代码列表。但是,我无法将这些颜色分配给绘图。到目前为止,我在网上发现的任何东西都是根据群体分配颜色。
以下是示例:
library(data.table)
library(ggplot2)
#sample of cumulative probabilities
wave <- data.table(
c(1, 1, .9, .6, .2, .02, 0, 0),
c(1, 1, 1, .8, .6, .42, .1, 0),
c(1, 1, 1, .9, .7, .4, .34, .1))
#set up for dot plot
dot <- data.table(rep(c(1:NROW(wave)), NCOL(wave)),
rep(colnames(wave), each = NROW(wave)))
#trying to use saturation in hsv to get prob dependent color fades
fade <- hsv( .9, rev(as.matrix(wave)), .55)
p<-ggplot(
dot, aes(x=V2, y=V1)) +
geom_dotplot(binaxis='y', stackdir='center',
stackratio= .1, dotsize=.7
)
# The following lines don't work:
p+scale_colour_manual(values = fade)
p
p+scale_fill_manual(values = fade)
p
任何帮助将不胜感激!谢谢。
答案 0 :(得分:1)
如果我理解正确的话,对于每个点,你都有一个相关的颜色,它存储在自己的矢量fade
中,并且你想要绘制点,使得每个点都用相关颜色。
在那种情况下:
names(fade)<-fade
ggplot(dot,aes(x=V2,y=V1,fill=fade))
+geom_dotplot(binaxis='y',stackdir='center',stackratio=.1,dotsize=.7)
+scale_fill_manual(values=fade)
基本上,这会将您的分组变量设置为十六进制颜色。
请注意,您也可以使用geom_point
轻松完成此操作:
dot$probability<-do.call(c,wave)
ggplot(dot,aes(x=V2,y=V1,color=probability))
+geom_point(size=3)
+scale_color_gradient(low="#8C0054",high="#8C8C8C")