gpt4 book ai didi

r - 在 R 中使用 Plotly 的子图(错误修复)

转载 作者:行者123 更新时间:2023-12-04 02:09:31 25 4
gpt4 key购买 nike

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

官网有这个nice Python example :

Python Example

python代码有选项rows=2cols=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)

它们在一条线上,而不是在一个网格中。查看结果:

enter image description here

这是 R suplots page供引用。不幸的是,使用 ggplotly对我来说不是一个选择,比如 this

更新

这是一个错误。 Plotly 团队非常快,仅用了 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)

这将产生以下图:

enter image description here

如果您仔细观察 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)))

这产生:
enter image description here

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

由于这是一个错误,而我的解决方案只是一种解决方法,但是我建议您向 plotly 提交问题。在 GitHub.

关于r - 在 R 中使用 Plotly 的子图(错误修复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33870527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com