ggplot gradientn基于指定形状的数据值填充

ggplot gradientn基于指定形状的数据值填充,r,ggplot2,R,Ggplot2,在ggplot2(倒数第二个图形)中: 而且这个填充不正确: ggplot(dsub) + geom_point(aes(x=x,y=y, data=dsub, fill=diff), size=3, shape=21) + scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE) 使用ggplot,它将是: d<-ggplot(dsub,aes(x=x,y=y,group=di

在ggplot2(倒数第二个图形)中:

而且这个填充不正确:

ggplot(dsub) +
geom_point(aes(x=x,y=y, data=dsub, fill=diff), size=3, shape=21) +
scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE)

使用ggplot,它将是:

d<-ggplot(dsub,aes(x=x,y=y,group=diff,fill=diff))
d+geom_point(colour="black",size=3,shape=21)

如用户1317221所示,解决方案是使用
scale\u fill\u gradientn
,而不是
scale\u color\u gradientn

ggplot(dsub) +
    geom_point(aes(x=x,y=y,fill=diff), colour="black", size=3, shape=21) +
    scale_fill_gradientn(colours = topo.colors(10), values=values, rescale=FALSE)

第6行提供的代码中的PS产生错误,使用qplot需要qplot(x,y,data=dsub,fill=diff,color=I(“黑色”),shape=I(21))。诀窍在于那些围绕着可能是也可能不是美学映射的事物的I()函数。这是我想到的一个很好的例子,qplot毕竟不是那么容易,ggplot版本更直观。那么,如果点是现有ggplot中的第二层,即通过geom_points()调用,我该怎么做呢?不确定@Benjamin是什么意思。您的意思是:
我首先绘制一个geom_tile()层,因此ggplot()调用引用该数据,与我在geom_point()调用中使用的数据不同。这意味着我不能指定组并填充ggplot()调用。有没有办法通过geom_point()调用指定所有参数?您可以为每个
geom
指定不同的数据集,这样您就可以拥有
geom_tile(data1,…)+geom_point(data=data2,…)
ggplot(dsub) +
    geom_point(aes(x=x,y=y, data=dsub, colour=diff), size=3, shape=21) +
    scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE)
ggplot(dsub) +
geom_point(aes(x=x,y=y, data=dsub, fill=diff), size=3, shape=21) +
scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE)
d<-ggplot(dsub,aes(x=x,y=y,group=diff,fill=diff))
d+geom_point(colour="black",size=3,shape=21)
d<-ggplot(dsub,aes(x=x,y=y,group=diff,fill=diff))
e<- d + geom_point(colour="black",size=3,shape=21)
e + scale_fill_gradientn(colours=topo.colors(10))
d<-ggplot(dsub,aes(x=x,y=y,group=diff,fill=diff))
e<-d+geom_line()
g<- e + geom_point(colour="black",size=3,shape=21)
g + scale_fill_gradientn(colours=topo.colors(10))
ggplot(dsub) +
    geom_point(aes(x=x,y=y,fill=diff), colour="black", size=3, shape=21) +
    scale_fill_gradientn(colours = topo.colors(10), values=values, rescale=FALSE)