代码之家  ›  专栏  ›  技术社区  ›  N. Maks

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

  •  2
  • N. Maks  · 技术社区  · 9 年前

    我想知道为什么 plotly 从中转换的对象 ggplot2 使用 ggplotly 函数在html小部件上使用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 包装而不是 阴谋的 ggplot2 但是,同样,当使用HTMLWidget时,为什么本地plotly图形会正确呈现,而ggplot转换后的图形不会。。?

    1 回复  |  直到 9 年前
        1
  •  4
  •   creativename    8 年前

    我也花了很多时间想弄明白这一点,其实很简单。
    在ggplotly中将dynamicTicks设置为TRUE。
    ply.ggp <- ggplotly(ggp, dynamicTicks = TRUE)
    我只是尝试创建小部件,它对我很有用。

    推荐文章