使用ggplot绘制颜色渐变

10

我有一些地理位置的 x、y、z 数据,我将其绘制如下:

p<-ggplot(aes(x=x,y=y,fill=z),data=my_data)

我接着应用了一个渐变

p<-p + scale_fill_gradient(low = "pink", high = "green")

然后将数据平铺并显示出来

p<-p + geom_tile()
p
这个方案可行并会得到如下结果: enter image description here 因此人们可能认为,我可以用许多其他选项替换scale_fill_gradient()调用,例如:
p<-p + scale_color_hue()
p<-p + scale_colour_gradientn(colours=c("#E5F5F9","#99D8C9","#2CA25F"))
p<-p + scale_colour_gradientn(colours = rainbow(7))
p<-p + scale_colour_brewer() 

这个方案可以行得通。

但实际上并不行,我只会得到一个蓝色的渐变。

你有什么想法为什么会这样,以及如何生成更多美丽的颜色吗?


1
进一步解释joran所说的,如果你在所有这些例子中将单词“color”替换为单词“fill”,我认为你会发现你可以生成所有“快乐颜色”。 - Justin
谢谢@Justin,这似乎改变了我的geom_tiles的轮廓颜色...所以我需要一种将scale_colour命令映射到瓷砖的填充属性的方法... - Richard
谢谢@joran,回想起来这很明显,但它只影响单元格的轮廓,就像我留给Justin的评论一样。我会上传一张图片。 - Richard
使用 scale_colour_* 来改变颜色,使用 scale_fill_* 来改变填充。 - joran
@joran,根据您的评论,我已经让事情运转起来了。您能否将它们写成答案?如果有不完整的地方,我会进行适当编辑。谢谢! - Richard
1个回答

6

这些比例函数有两个版本,一个是针对colour属性,另一个是针对fill属性。您只需要使用fill的版本,例如scale_fill_hue等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接