每组ggplot2颜色渐变

时间:2016-08-30 22:24:44

标签: r ggplot2

以下是我能够使其工作的样本:

find_hull <- function(df) df[chull(df$Sepal.Length, df$Sepal.Width), ]
hulls <- ddply(iris, "Species", find_hull)

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, shape=Species, 
                         color=Species, size=Petal.Width)) + 
  geom_point() +
  ggtitle("Sepal.Length vs. Sepal.Width - size Petal.Width") +
  scale_shape_manual(values=c(15,16,17)) +
  geom_polygon(data = hulls, alpha = 0.15, size=0.2) +
  scale_size(guide = "none")

我现在要做的是根据Petal.Width为每个组(即setosa,versicolor和virginica)指定渐变。也就是说,让我们说setosa组是读取方块,其中每个点的大小取决于Petal.Width。我希望这种红色根据花瓣宽度变化(从白色到红色)。如果virginica是蓝色三角形,我希望这些三角形的颜色也随着大小(花瓣宽度)而变化。

任何想法会是一种简单的方法来做这样的事情吗?

1 个答案:

答案 0 :(得分:2)

有点hacky - 为了获得“淡出白色”效果,我添加了一个白色geom_point,并将其与另一个geom_point重叠,alpha映射到{{1} }}。因此,具有最大值Petal.Width的点将是纯色,随着Petal.Width减少而逐渐变为白色。

Petal.Width

输出:

enter image description here