2

我试图理解为什么在 html 小部件上使用 plotly 的缩放功能时,使用该函数plotly从对象转换的对象不会动态重新缩放网格。ggplot2ggplotly

我想找到一个解决方案,而无需将所有绘图重新编码为本机plotly对象。

我是否遗漏了一些东西,或者可能是这个功能在包中尚不支持plotly

这是一些说明问题的示例代码(在执行之前,您需要将your.path变量设置为您希望保存 htmlwidget 的目录):

library(ggplot2)
library(plotly)
library(htmlwidgets)

ggp <- ggplot(data=mtcars, aes(x=hp, y=mpg)) + geom_point() + theme_bw()
ply.ggp <- ggplotly(ggp)
saveWidget(ply.ggp, paste(your.path, "mtcarsGGPLOT.html", sep=""))

在此 html 小部件上,当您放大时,网格比例保持静态(例如,即使您放大,您也只能看到 100、200、300 上的 x 网格线。没有可见的新网格线,例如 25 , 50, 75 等)

使用此示例代码直接在 plotly 中创建绘图时将此与小部件进行比较:

ply <- plot_ly(data=mtcars, x=mtcars$hp, y=mtcars$mpg)
saveWidget(ply, paste(your.path, "mtcarsNATIVE.html", sep=""))

在这里,当您放大绘图区域时,可以看到一个新的动态网格。

编辑:可能是由于htmlwidgets包装而不是plotlyor引起的观察ggplot2。但是话又说回来,为什么在使用 htmlwidgets 时原生绘图图形会正确呈现,而 ggplot 转换的图形却不能......?

4

1 回答 1

4

我也花时间试图弄清楚这一点,它实际上很简单。
在 ggplotly 中将 dynamicTicks 设置为 TRUE。
ply.ggp <- ggplotly(ggp, dynamicTicks = TRUE)
我刚刚尝试创建小部件,它对我有用。

于 2017-08-15T02:36:16.097 回答