如何更改ggplot2中散点图的颜色
Posted
技术标签:
【中文标题】如何更改ggplot2中散点图的颜色【英文标题】:How to change color of scatterplot in ggplot2 【发布时间】:2010-11-26 15:02:07 【问题描述】:在ggplot2中,如何改变散点图中的颜色?
【问题讨论】:
【参考方案1】:这是一个小数据集:
dat <- data.frame(x=1:20,
y=rnorm(20,0,10),
v=20:1)
假设我希望使用值 v 为我的点着色。我可以使用 scale_colour_gradient() 函数更改着色的执行方式。
library(ggplot2)
qplot(x,y,data=dat,colour=color,size=4) +
scale_colour_gradient(low="black", high="white")
这个例子应该能让你开始。更多信息,请查看另一篇文章中提到的scale_brewer()
。
【讨论】:
【参考方案2】:如果您的数据具有您希望着色的离散类别,那么您的任务会更容易一些。例如,如果您的数据如下所示,每一行代表一个事务,
> d <- data.frame(customer = sample(letters[1:5], size = 20, replace = TRUE),
> sales = rnorm(20, 8000, 2000),
> profit = rnorm(20, 40, 15))
> head(d,6)
customer sales profit
a 8414.617 15.33714
a 8759.878 61.54778
e 8737.289 56.85504
d 9516.348 24.60046
c 8693.642 67.23576
e 7291.325 26.12234
如果您想制作一个按客户着色的交易散点图,那么您可以这样做
p <- ggplot(d, aes(sales,profit))
p + geom_point(aes(colour = customer))
得到....
【讨论】:
【参考方案3】:查看 scale_brewer http://www.had.co.nz/ggplot2/scale_brewer.html 的 ggplot 文档
一些例子:
#see available pallets:
library(RColorBrewer)
display.brewer.all(5)
#scatter plot
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
d <- qplot(carat, price, data=dsamp, colour=clarity)
dev.new()
d
dev.new()
d + scale_colour_brewer(palette="Set1")
dev.new()
d + scale_colour_brewer(palette="Blues")
【讨论】:
以上是关于如何更改ggplot2中散点图的颜色的主要内容,如果未能解决你的问题,请参考以下文章