【问题标题】:Convert alpha aesthetics with ggplotly使用 ggplotly 转换 alpha 美学
【发布时间】:2019-11-23 10:14:26
【问题描述】:

我一直在使用ggplot2 制作热图,现在我正在尝试将它们转换为ggplotly 以使用它们构建shiny 应用程序。除了 geom_tile 中的 alpha 美学的翻译(如果我 use geom_raster 也是同样的问题)之外,一切都(或多或少)正常。经过一整天的谷歌搜索和阅读相关答案,我还没有找到任何解决方案。

我尝试了不同的数据和规格,但到目前为止完全没有运气。这个问题似乎是特定于热图的,因为如果我使用 geom_point,alpha 转换得很好。问题是,我真的需要热图来做我正在做的事情。

我制作了一个可重现的示例来说明问题。

library(ggplot2)
library(plotly)
library(dplyr)

sample<- data.frame(a = 1:10,
                b = 11:20,
                c = 31:40,
                d = rep(c("a", "b"), 5))


plot <- sample%>%
  ggplot(aes(x=a, y=b, fill = c, alpha = d))+
  geom_raster()

plot

ggplotly(plot)

您会看到输出完全不同。有什么想法或有人遇到过类似的问题吗?

ggplot:

ggplotly:

【问题讨论】:

  • 这是我得到的:不建议将 alpha 用于离散变量。您能否准确解释问题所在?我个人无法说出问题所在,因为不清楚您希望看到什么。 但如果你运行它,你会看到输出完全不同。没有什么可比较的。
  • 对不起,我的错,我忘记在示例中打印 plotly 输出。我刚刚编辑。如果你现在运行它,你会发现 ggplot 和 plotly 输出完全不同(后者似乎没有得到 alpha)。通过使用 geom_point() 绘制热图,我以某种方式找到了解决方法,但这并不理想......

标签: r ggplot2 heatmap r-plotly ggplotly


【解决方案1】:

如果有人遇到类似的问题,我通过使用geom_point() 创建热图并调整点的形状和大小直到看起来相同的。显然,ggplotly 确实可以很好地翻译来自这个 geom 的 alpha aes。

这是最终结果(闪亮的应用程序的目的是能够选择这些对角线与参考年份以将它们与其他对角线隔离):

【讨论】:

    【解决方案2】:

    我同意有些内容没有按照plotly::ggplotly() 的意图进行翻译。我尝试了ggplot2::geom_rect() & ggplot2::geom_tile()ggplot2::scale_color_manual() & ggplot2::scale_color_identity() 的一些变体。

    这是一个直接写成 plotly 的热图示例,没有 ggplot2 层。我没有看到直接映射 alpha/opacity 的方法。

    如果您不需要在情节上改变 alpha,这应该可以满足您的需求,并且只需要正确的几何尺寸。

    ds <- tibble::tibble(
      x   =  1:10,
      y   = 11:20,
      z   = 31:40,
      a1  = rep(c("a", "b"), 5),
      a2  = rep(c( .1,   .4), 5)
    )
    
    plot_ly(ds) %>% 
      add_heatmap(x = ~x, y = ~y, z = ~z, opacity = .5,  colors = "YlGnBu")
    

    如果您需要改变 alpha,我猜目前最好的方法是创建一个自定义调色板来设置 rgba 的所有四个通道。

    【讨论】:

    • 谢谢!!是的,问题是我希望能够改变 alpha,尽管否则这种方法会很棒。我最终用 geom_point 创建了一个热图,它正确地翻译了 alpha,我会把它作为答案发布。
    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多