将输出中心输出到html

时间:2017-10-20 16:37:47

标签: r plotly

我正在以编程方式将一个plotly小部件写入html。但是,我似乎无法找到一个选项来使得到的情节居中。这是一个有代表性的例子:

library( ggplot2 )

gg <- ggplot( mtcars, aes( x=mpg, y=wt ) ) + geom_point()
pp <- plotly::ggplotly( gg, width=300, height=300 )
htmlwidgets::saveWidget( pp, "test.html" )

请注意,结果输出在页面上左对齐:

enter image description here

我已经查看了ggplotlyplotly::layoutsaveWidget的选项,但没有立即明显的方法来集中情节。在过去,我在Rmarkdown文档中包含了plotly个元素,并使用了markdown关键字来使图表居中。但是,当前plotly输出是作为更大框架的一部分动态生成的,这对于在Rmarkdown内部进行包装并非易事。在将plotly小部件写入.html时,有没有办法引入居中标签?

1 个答案:

答案 0 :(得分:1)

我发现最简单的方法是使用ggplotly包将div的输出包装在htmltools标记内。生成的HTML对象可以使用同一个包中的save_html保存到文件中:

pp <- plotly::ggplotly( gg, width=300, height=300 )    # As before
ppc <- htmltools::div( pp, align="center" )  # Result is now an HTML object
htmltools::save_html( ppc, "test.html" )     # Use in place of htmlwidgets::saveWidget()

这是结果,现在正确居中:

enter image description here