我正在尝试理解为什么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
包而不是plotly
或ggplot2
,可能会发生观察。但话又说回来,为什么当使用htmlwidgets时,原生的图形图形会正确呈现,而ggplot转换后却不能..?
答案 0 :(得分:1)
我也花时间试图解决这个问题,而且实际上非常简单
在ggplotly中将dynamicTicks设置为TRUE
ply.ggp <- ggplotly(ggp, dynamicTicks = TRUE)
我只是尝试创建小部件,它对我有用。