R plotly子图添加间距

15

我想在图形之间添加间距,但是当我调整边距时,它要么重叠,要么被裁剪。 以下是代码:

library(plotly)

plotList <- function(nplots) {
  lapply(seq_len(nplots), function(x) plot_ly())
}
s1 <- subplot(plotList(6), nrows = 2, shareX = TRUE, shareY = TRUE)
s2 <- subplot(plotList(2), shareY = TRUE)
p <- subplot(s1, s2, plot_ly(), nrows = 3, margin = 0.04, heights = c(0.6, 0.3, 0.1))

print(p)

我得到了这个:

输入图像描述

但我更喜欢像这样的东西(用画图绘制的图像),不同子图之间有更多的间距:

输入图像描述

我该怎么办?

2个回答

24

我曾经也遇到同样的问题,但幸运的是我找到了解决方案。您可以在Subplot函数中使用margin作为参数,方法如下:

subplot(plot1,
        plot2,
        nrows = 2,
        margin = 0.07)

根据Plotly文档,您只能为每个边距定义一个或四个值,并且这些值应在0和1之间。如果您提供一个值,则将用于所有四个边距,如果提供了四个值,则将按照以下顺序使用:第一个值将是左边距,第二个值将是右边距,第三个值将是上边距,最后一个值将是下边距。您可以尝试并定义最适合创建所需布局的值。


0

我通过在正常绘图之间插入空白绘图找到了一个解决方案。虽然有点笨拙,但它能够工作,而且我没有找到更好的方法。

blankplot<-plot_ly()%>%
  layout(xaxis=list(visible="FALSE",color="white",tickfont =list(color="white")),
         yaxis=list(visible="FALSE",color="white",tickfont =list(color="white")))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接