Mur*_*rta 11 plot datagrid r plotly
如何在R中使用Plotly创建子图网格?
官方网站有这个很好的Python示例:
在Python代码有权选择rows=2
和cols=2
,但在R上的subplot
功能刚刚参数nrows
,没有ncols
.
我在R中尝试了这个例子,但是nrows
没有按预期接缝工作:
# Basic subplot
library(plotly)
p <- plot_ly(economics, x = date, y = uempmed)
subplot(p,p,p,p,
margin = 0.05,
nrows=2
) %>% layout(showlegend = FALSE)
Run Code Online (Sandbox Code Playgroud)
它们在一条线而不是在网格中.看结果:
这是R suplots页面供参考.不幸的是,使用ggplotly
对我来说不是一个选择,就像这样
这是一个错误.Plotly团队非常快,仅在3天内修复(点击此处查看)!Github版本已经更新.很好!
Fel*_*lix 10
这似乎是subplot()
为两个图生成y轴域的方式中的真正错误.实际上,它们重叠,如果你执行它们很容易看到
p <- plot_ly(economics, x = date, y = uempmed)
q <- plot_ly(economics, x = date, y = unemploy)
subplot(p,q, nrows = 2)
Run Code Online (Sandbox Code Playgroud)
这将产生以下情节:
如果仔细观察y轴,您会发现它们重叠.这暗示了问题的方式subplot()
定义了子图的y轴的域.
如果我们手动更正y轴的域规范(遵循绘图文档),我们可以解决问题:
subplot(p,q, nrows = 2) %>% layout(yaxis = list(domain = c(0, 0.48)),
yaxis2 = list(domain = c(0.52, 1)))
Run Code Online (Sandbox Code Playgroud)
现在,如果要重现类似于Python示例的4x4子图矩阵,您可能需要以类似的方式手动调整x轴域.
由于这是一个错误,我的解决方案只是一种解决方法,但我建议您plotly
在GitHub上提出问题.