R:具有小倍数/子图的情节纵横比

R: Plotly aspect ratio with small multiples / subplots

我已经 post 编辑了这个 as an issue on Github two weeks ago. Since it's apparently ok to repost the question "if the project maintainers don't respond in a reasonable amount of time",我会 post 这里的问题。

我想创建具有固定纵横比的小倍数。但是,只有一些图保留了正确的纵横比。根据我收集到的信息,使用 plotly 设置固定的纵横比如下:layout(yaxis = list(scaleanchor = "x"))。考虑以下示例:

library(purrr)
library(plotly)

df <- data.frame(
  x = rep(1:5,25),
  y = rep(1:5,25),
  g = sort(rep(1:25,5))
)

plots <- df %>%
  split(.$g) %>%
  map(function(x){
    plot_ly(data = x, x = ~x, y = ~y, type = "scatter",mode = "lines") %>% add_lines()
  })

small_multiples <- subplot(plots,nrows = 5) %>%
  layout(yaxis = list(scaleanchor  = "x")) %>%
  hide_legend()

如果我绘制 small_multiples,只有第一个图(第 1 行,第 1 列)的纵横比为 1。另一个具有任意纵横比。 这是此图的交互式版本的 link:https://plot.ly/~rata_zhaw/1/

有趣的是,如果我在 subplot() 中选择选项 shareX = T,则整个第一列的宽高比都是正确的。如果我选择 shareY = T,什么都不会改变

这里是第二个情节的互​​动版本link:https://plot.ly/~rata_zhaw/3/

如果我单独绘制任何图,纵横比是正确的:

plots[[10]] %>%
  layout(yaxis = list(scaleanchor  = "x")) %>%
  hide_legend()

怎么样

small_multiples <- subplot(plots,nrows = 5) %>%
  layout(scene = list(aspectration=list(x=1,y=1))) %>%
  hide_legend()