【问题标题】:qplot alpha value as a vectorqplot alpha 值作为向量
【发布时间】:2013-03-06 20:17:08
【问题描述】:

我想用向量(基于绘制的值)设置qplot 中某个点的 alpha 值。

library(ggplot2)
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
alpha = rep(.8,nrow(dsamp)); alpha[dsamp$clarity=="I1"] <- 1
qplot(carat, price, data=dsamp, colour=clarity,size=I(4),alpha=alpha)

当我执行上面的代码时,当我像这样创建 alpha 向量时没有区别:

alpha = rep(.1,nrow(dsamp)); alpha[dsamp$clarity=="I1"] <- 1

我希望dsamp$clarity!="I1" 的点具有与上述两个代码一样的透明度。我怎样才能做到这一点?

【问题讨论】:

    标签: r transparency alpha ggplot2


    【解决方案1】:

    我会使用ggplot() 并将alpha 映射到clarity。然后,您可以手动设置每个因子水平所需的 alpha 值。

    levels(dsamp$clarity)
    [1] "I1"   "SI2"  "SI1"  "VS2"  "VS1"  "VVS2" "VVS1" "IF"
    alpha <- c(1, rep(0.25, times=(length(levels(dsamp$clarity))-1)))
    names(alpha) <- levels(dsamp$clarity)
    alpha
      I1  SI2  SI1  VS2  VS1 VVS2 VVS1   IF 
     0.5  1.0  1.0  1.0  1.0  1.0  1.0  1.0
    

    然后你可以:

    ggplot(dsamp, aes(carat, price)) + geom_point(aes(alpha=clarity, colour=clarity), size=I(4)) +
      scale_alpha_manual(values=alpha)
    

    据我所知,它可以满足您的需求。创建alpha 时,您显然可以为I1 设置不同的级别。

    【讨论】:

    • 谢谢!正是我搜索的内容!
    猜你喜欢
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多