ggplotly创建的对象在放大时不会动态调整网格线

时间:2017-01-31 11:34:02

标签: r ggplot2 plotly htmlwidgets

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

我想找到一个解决方案,而不需要将所有绘图重新编码为本地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等。)

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

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

当您放大绘图的某个区域时,会显示一个新的动态网格。

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

1 个答案:

答案 0 :(得分:1)

我也花时间试图解决这个问题,而且实际上非常简单 在ggplotly中将dynamicTicks设置为TRUE ply.ggp <- ggplotly(ggp, dynamicTicks = TRUE)
我只是尝试创建小部件,它对我有用。