我不知道如何使用 R 和 Plotly 使表格子图正常工作。
以下说明了我的意思。我有两张图,一张是散点图,一张是表格。使用 subplot 函数,表格图的行为不符合预期。
我要么失去了散点图的交互性,要么有重叠的散点图/表格图。如果我遗漏了什么或者这是一个错误,请告诉我。
我使用的是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
我刚刚阅读了 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)))
编辑(11/30/23):
感谢 @YBS 推荐
manipulateWidget
包中的一个函数,用于在绘图下方放置表格。这个套餐一般可以:
...用于以非常简单快捷的方式创建图形 允许用户修改数据或参数的接口 互动图表。
遇到这种情况,你可以尝试:
manipulateWidget::combineWidgets(list = list(p1, p2))
您还可以为多个交互式绘图的行和列的数量和大小指定参数。