【问题标题】:R plotly overlay heatmapsR plotly覆盖热图
【发布时间】:2018-02-22 17:39:08
【问题描述】:

我有两个矩阵,A 和 B,我想用 plotly 制作两个热图,并将它们叠加

library(plotly)
A = matrix(c(1:8, rep(0, 8)), ncol = 4)
B = matrix(c(rep(0, 8), 1:8), ncol = 4)
PA <- plot_ly(z = A, type = "heatmap", colors = colorRamp(c("white", "green")))
PB <- plot_ly(z = B, type = "heatmap", colors = colorRamp(c("white", "red")))

当我尝试叠加它们时,它们确实被夸大了,但第二个热图完全掩盖了第一个。

PA %>% add_trace(z = B, type = "heatmap")

我可以更改不透明度以“看到”两个热图

PA %>% add_trace(z = B, opacity = 0.5, type = "heatmap")

但是真的不好看,而且我不能为每个热图设置不同的颜色。

是否有任何优雅的方式来覆盖它们,如下例所示?非常感谢。

p = plot_ly(x = rnorm(500), opacity = 0.6, type = "histogram") %>%
add_trace(x = rnorm(500)+1) %>%
layout(barmode="overlay")

【问题讨论】:

  • subplot(PA, PB, nrows = 2)?
  • @MLavoie 感谢您的帮助。我想将两个热图叠加。

标签: r plotly r-plotly


【解决方案1】:

我不确定这是否可能,但也许你可以欺骗它。你可以试试:

ay <- list(
  title = "",
  zeroline = FALSE,
  showline = FALSE,
  showticklabels = FALSE,
  showgrid = FALSE
)

PB <- PB %>% layout(yaxis = ay, xaxis = list(range = c(1.5, 3.5), dtick = 1))
PA <- PA %>% layout(yaxis = list(dtick = 1), xaxis = list(range = c(-0.5, 1.5), dtick = 1))
subplot(PA, PB, nrows = 1, shareX = TRUE, shareY = FALSE) 

【讨论】:

  • 非常感谢@MLavoie,这不是我所期望的。我的真实数据集要复杂得多。无论如何,非常感谢您的帮助。
猜你喜欢
  • 2010-09-16
  • 2020-01-19
  • 2022-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多