代码之家  ›  专栏  ›  技术社区  ›  user3554004

情节不尊重标记。高度,有解决办法吗?

  •  4
  • user3554004  · 技术社区  · 6 年前

    我正在使用R标记进行幻灯片(通过HTML输出) slidy )需要包含使用 plotly . 幻灯片上的一个图表应该能填满大部分幻灯片,所以我已经设置好了 out.width out.height 在块选项中设置为“95%”,并设置 autosize=T 在绘图布局选项中。当幻灯片投影(在大屏幕上或通过光束投射到墙上;或只是调整浏览器窗口的大小)时,绘图的宽度可以很好地缩放以填充窗口,而高度保持在默认的450px,而不是窗口高度的95%。

    但是,如果我调整窗口大小或全屏(它在RStudio浏览器和Chrome窗口中都适用),那么情节图就可以识别相对高度并相应地调整大小。除了不是所有的幻灯片,只有我调整窗口大小时看到的当前幻灯片。下面是一个示例:绘图不会在大屏幕上填充整个幻灯片,但即使稍微调整浏览器窗口的大小,也会:

    ---
    title: "Untitled"
    output: slidy_presentation
    ---
    
    ```{r, echo=F, out.width = "98%", out.height="95%"}
    suppressMessages({library(plotly)})
    p = plot_ly(x=~iris[,1],y=~iris[,2] , type="scatter", mode="markers") %>% layout(autosize=T)
    p
    ```
    

    我尝试过各种各样的(大多是老套的)方法,这些方法是由那些纠结于与此相关的问题的人提出的,比如 here here ,包括:

    • 将动画设置为false(在某个地方有人建议)
    • 混乱的对象的内部价值的对象(例如设置P$ SIZIN策略$ Debug THEE=“100%”)
    • 设置 plot_ly() 高度到相对%值(这实际上禁用了相对大小调整,即使是调整窗口大小的技巧!)
    • 在htmltools::div中包装打印输出(style=“height:95%”)(这也会禁用自动调整大小,并使打印高度更小)
    • 试图通过将自定义CSS覆盖在RDD文件中,包括DIV.PPLT-Culul.PrutType、DIV.SvG-Cube、Sv.MIG-VSG,以及设置{Leave=“95%”;} -我可以像其他的CSS值一样可视地改变 background-color ,而设置高度不起作用。
    • 在下面的绘图中添加按钮 this example 调用JavaScript relayout 功能重绘情节,显然使它意识到窗口的尺寸,使之成为我想要的95%高度。所以这是可行的,但是需要在每个情节旁边添加一个奇怪的按钮,在我演示之前浏览我的幻灯片并按下每个按钮。

    但是(除了最后一次黑客攻击)似乎什么都没用。而宽度/水平调整总是像一个魅力。

    我不知道这是有意的行为还是bug,即使是后者,我也没有时间等待下一个版本,我需要找到一些解决办法。一个明显的缺点是在演示前浏览幻灯片,并在每个幻灯片上调整窗口大小,但是有太多的情节,因为这是可行的。而交互性是我所需要的,所以将plotly绘图渲染为png或其他什么都不是解决方案。

    如何强制绘制一个不可分割的图,立即尊重r中的参数,这样一个新的图将填充一个幻灯片?

    0 回复  |  直到 6 年前