ggplotly with facet_wrap(scales =' free_y')会创建不均匀的面板宽度

时间:2017-10-26 12:59:40

标签: r plotly ggplotly

以下代码使用ggplotly创建一个多面Plotly图,其中每个facet具有相同的高度和宽度:

library(ggplot2)
library(plotly)

data <- expand.grid(
  measure = paste0('m', 1:6),
  x = seq(as.Date('2017-01-01'), as.Date('2017-10-01'), length.out = 10))

data$y <- runif(nrow(data))

test <- ggplot(
  aes(
    x = x,
    y = y),
  data = data) +
  geom_point() +
  facet_wrap(~measure)

g <- ggplotly(test)
print(g)

enter image description here

但是对于新的迭代,我想允许y比例变化,所以我添加了scales = 'free_y'。这导致两个问题:

每一行的中间面板比外面板更窄,数据点在面板[2,1]和[2,2]中消失,原因不明确。

test <- ggplot(
  aes(
    x = x,
    y = y),
  data = data) +
  geom_point() +
  facet_wrap(~measure, scales = 'free_y')

g <- ggplotly(test)
print(g)

enter image description here

如果我更改为scales = 'free'而不是'free_y',我会返回数据点,但每行的中间面板仍然更窄,我需要添加面板间距以保持x-轴标签重叠:

test <- ggplot(
  aes(
    x = x,
    y = y),
  data = data) +
  geom_point() +
  facet_wrap(~measure, scales = 'free')

g <- ggplotly(test)
print(g)

enter image description here

是否有一种很好的方法可以保持面板宽度与y尺度的变化相等?

0 个答案:

没有答案