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()
我已经 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。另一个具有任意纵横比。
有趣的是,如果我在 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()