在R中使用插图的子图(已修复错误) [英] Subplots using Plotly in R (bug fixed)

查看:20
本文介绍了在R中使用插图的子图(已修复错误)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在R中使用Ploly创建子图网格?

官网有这个nice Python example

python代码有选项rows=2cols=2,但在R中subplot函数只有参数nrows,没有ncols

我在R中尝试了此示例,但nrows没有使Seam正常工作:

# 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)

它们在一行中,而不是在网格中。查看结果:

这里是R suplots page供参考。遗憾的是,我不能选择使用ggplotly,就像this

一样

更新

这是一个错误。Ploly团队速度很快,只用了3天(check here)就修好了!GitHub版本已更新。干得好!

推荐答案

这似乎是subplot()生成两个绘图的y轴域的方式中的真正错误。实际上,它们是重叠的,如果您执行

p <- plot_ly(economics, x = date, y = uempmed)
q <- plot_ly(economics, x = date, y = unemploy)


subplot(p,q, nrows = 2)

这将产生以下绘图:

如果你仔细观察y轴,你会发现它们是重叠的。这暗示了subplot()定义子图y轴域的方式存在问题。

如果我们手动修改y轴的域规范(按照plotly documentation),我们可以解决这个问题:

subplot(p,q, nrows = 2) %>% layout(yaxis = list(domain = c(0, 0.48)), 
                                   yaxis2 = list(domain = c(0.52, 1)))
这会产生以下结果:

现在,如果您想要重新生成类似于Python示例的4x4子图矩阵,您可能需要以类似的方式手动调整x轴域。

由于这是一个错误,而我的解决方案只是一种解决方法,因此我建议您在GitHub.

plotly提交问题

这篇关于在R中使用插图的子图(已修复错误)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆