如果我生成一个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))
Run Code Online (Sandbox Code Playgroud)
默认情况下,这是以蓝色刻度绘制的.如何组合不同的颜色来制作新的比例?
设置颜色的方法几乎无限ggplot多,事实上很多都会让人感到困惑.这里有几个例子可以帮助您入门.见文档在这里,在这里,并在这里更多的选择.IMO 这个网站提供了很好的颜色选项概述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")
Run Code Online (Sandbox Code Playgroud)

scale_color_gradientn(...)将调色板作为参数(例如,颜色矢量)并在它们之间进行插值.可以手动定义调色板,也可以使用R中的众多工具之一定义调色板.例如,该RColorBrewer软件包可以访问www.colorbrewer.org上的颜色方案.
library(RColorBrewer) # for brewer.pal(...)
ggp + scale_color_gradientn(colours=rev(brewer.pal(9,"YlOrRd")))
Run Code Online (Sandbox Code Playgroud)

library(colorRamps) # for matlab.like(...)
ggp + scale_color_gradientn(colours=matlab.like(10))
Run Code Online (Sandbox Code Playgroud)

scale_color_gradient2(...) 产生不同的色标,专为具有自然中点的数据而设计(您的示例不是......).
ggp +
scale_color_gradient2(low="blue",mid="green",high="red",midpoint=5,limits=c(0,10))
Run Code Online (Sandbox Code Playgroud)

这真的只是划伤了表面.例如,还有另一组工具ggplot来处理离散色标.
| 归档时间: |
|
| 查看次数: |
2498 次 |
| 最近记录: |