如果我通过以下方式生成ggplot
x <- rnorm( 10^3, mean=0, sd=1)
y <- rnorm( 10^3, mean=0, sd=1)
z=x^2+y^2
df <- data.frame(x,y,z)
ggplot(df)+geom_point(aes(x,y,color=z))
默认情况下,这是以蓝色刻度绘制的。如何组合不同的颜色来制作新的比例?
答案 0 :(得分:7)
在ggplot
中设置颜色的方法几乎无限多,事实上很多都会让人感到困惑。这里有几个例子可以帮助您入门。请参阅文档here,here和here更多选项。 IMO this site提供了ggplot
中色彩选项的精彩概述。
正如@rawr在评论中指出的那样,所有选项都涉及某些版本的scale_color_
scale_color_gradient(...)
将颜色与色阶变量的低值和高值相关联,并在它们之间进行插值。
ggp <- ggplot(df)+geom_point(aes(x,y,color=z))
ggp + scale_color_gradient(low="red", high="blue")
scale_color_gradientn(...)
将调色板作为参数(例如,颜色矢量)并在它们之间进行插值。可以手动定义调色板,也可以使用R中的众多工具之一定义调色板。例如,RColorBrewer
包可以访问www.colorbrewer.org上的配色方案。
library(RColorBrewer) # for brewer.pal(...)
ggp + scale_color_gradientn(colours=rev(brewer.pal(9,"YlOrRd")))
library(colorRamps) # for matlab.like(...)
ggp + scale_color_gradientn(colours=matlab.like(10))
scale_color_gradient2(...)
会产生不同的色阶,专为具有自然中点的数据而设计(您的示例并非如此......)。
ggp +
scale_color_gradient2(low="blue",mid="green",high="red",midpoint=5,limits=c(0,10))
这真的只是划伤了表面。例如,ggplot
中有另一组工具来处理离散色标。