R Plotly:带有表的子图

时间:2019-05-23 02:03:09

标签: r plotly

我不知道如何使用R和Plotly使表格子图正常工作。

以下内容说明了我的意思。我有两个图,一个散点图和一张桌子。使用子图功能,表格图的行为不符合预期。

我要么在散点图上失去了交互性,要么散布了重叠的散点图/表格。请让我知道我是否缺少某些东西或这是一个错误。

我使用的是4.9.0版

谢谢!

library(plotly)

df <- data.frame(x = 1:10,
                 y = 1:10)

p1 <- 
  plot_ly(data = df,
          type = "scatter",
          mode = "line",
          x = ~x,
          y = ~y) %>%
  layout(xaxis = list(fixedrange=T),
         yaxis = list(fixedrange=T)) %>%
  config(displayModeBar = F)

p2 <-
  plot_ly(
    type = 'table',
    header = list(values = c("x", "y")),
    cells = list(values = rbind(df$x, df$y))
  )


subplot(p1, p2, nrows = 2) # overlapping plots

subplot(p2, p1, nrows = 2) # loses interactivity on p2

subplot(p1, p1, nrows = 2) # works as expected

1 个答案:

答案 0 :(得分:1)

我刚刚阅读了有关Plotly的文档:

  

在Plotly中,没有原生方法可将Plotly Table插入到   子图。

https://plot.ly/python/table-subplots/

但是似乎我们可以创建自己的布局。对于表格,我添加了“域”以将其定位在左侧:

p2 <-
  plot_ly(
    type = 'table',
    domain = list(x=c(0,0.5), y=c(0,1)),
    header = list(values = c("x", "y")),
    cells = list(values = rbind(df$x, df$y))
  )

然后在左侧的表中添加“布局”,在右侧的表中添加散点图:

subplot(p1, p2, nrows = 2) %>%
  layout(xaxis = list(domain=c(0.5,1.0)),
         xaxis2 = list(domain=c(0,0.5)))