【问题标题】:oob=scales::squish not working with scale_size_continuous in ggplot2oob=scales::squish 不适用于 ggplot2 中的 scale_size_continuous
【发布时间】:2020-12-01 02:22:36
【问题描述】:

这里与这个问题有关:Adjust geom_point size so large values are plotted, but do not appear larger in ggplot2?

具体参考@Axeman 的回复

我无法对那个问题发表评论,因此不得不提出一个新问题。

我希望为geom_point 的点大小实现“挤压”,但选项oob=scales::squish 不适用于scale_size_continuous。我不确定我还缺少什么。

不胜感激。这是我尝试过的代码:

xx = ggplot(pcm, aes(x = variable, y = TF)) + 
  geom_point(aes(size = value, fill=value), shape = 21) + 
  scale_size_continuous(range=c(1, 12),
    limits = c(-2, 2),
    oob = scales::squish)

此外,我想补充一点,我不能使用 @Axeman 回答的 scale_size_area,因为我不希望将 0 值映射到大小为 0 的点。我的数据范围约为。从 -1.7 到 +3。我想要为最小的负值分配最小的大小。谢谢。

【问题讨论】:

    标签: r ggplot2 bubble-chart


    【解决方案1】:

    如果在value 上进行转换处理会不会有问题?

    在这里,我只是想象您的数据可能是什么样子:

    pcm <- data.frame(variable = runif(100),
                      TF       = runif(100),
                      value    = runif(100, -1.7, 3))
    

    这是剧情

    library(ggplot2)
    
    ggplot(pcm, aes(x = variable, y = TF)) + 
        geom_point(aes(size = pmax(pmin(value, 2), -2), 
                       fill = value), 
                   shape = 21) +
        labs(size = "value")
    

    让我知道,我也许可以改进我的答案。

    另外,我建议您进行一些更新以提高图表的可读性,但这取决于您。

    ggplot(pcm, aes(x = variable, y = TF)) + 
        geom_point(aes(size = pmax(pmin(value, 2), -2), 
                       colour = value), 
                   alpha = 0.6) +
        labs(title = "Dots and colours",
             size = "value") +
        theme_minimal()
    

    【讨论】:

    • 谢谢!我会尝试您的建议,如果我有其他问题,我会回复您。我尝试后也会接受答案。再次感谢!
    猜你喜欢
    • 2016-10-06
    • 2023-01-26
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多