【问题标题】:ggplot2 color gradient per group每组ggplot2颜色渐变
【发布时间】:2016-08-30 22:24:43
【问题描述】:

这是我能够使它工作的示例:

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。我希望这种红色根据花瓣的宽度而变化(从白色到红色)。如果弗吉尼亚是蓝色三角形,我希望这些三角形的颜色也随大小(花瓣宽度)而变化。

有什么想法可以简单地做这样的事情吗?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    有点老套——为了获得“淡入白”的效果,我添加了一个白色的geom_point,并用另一个geom_point 覆盖,其中alpha 映射到Petal.Width。因此,Petal.Width 值最大的点将是纯色,随着 Petal.Width 的减少逐渐变为白色。

    ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, shape=Species, 
                             color=Species, size=Petal.Width)) + 
      geom_point(colour = "white") +
      geom_point(aes(alpha = Petal.Width, colour = Species)) +
      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") +
      scale_alpha_continuous(guide = FALSE) 
    

    输出:

    【讨论】:

    • 我将如何进行我想为每个组(手动物种)指定特定颜色,比如“橙色”/“黄色”/“黑色”?
    猜你喜欢
    • 2021-08-28
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多