R打印约束平移

aamkag61  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(91)

当你有一个情节,泛功能是非常好的。但是,平移可能会远离实际绘制的内容。有没有一种方法可以限制绘图,使与绘图交互的用户碰到一堵他们无法平移的墙?
我也在plotly论坛here上问过。
我正在等待fborges 22的回复,但他们的答案看起来可能是Python或Dash R?它的结构看起来与我在baseR中看到的闪亮应用程序的结构不同。再说一次,我不是Maven,所以如果它在R中工作,我渴望学习如何!话虽如此,我以前遇到过类似的事情。下面是一个最小的例子:

fig <- plot_ly()%>%
  add_trace(x = c(1, 2, 3), y = c(1, 3, 1), type = 'scatter', mode = 'lines+markers') %>%
config(fig, scrollZoom = TRUE)%>%layout(plot_bgcolor='#e5ecf6',
                                        xaxis = list(
                                          # xaxis_range=c(0, 4), # ADDED
                                          # xaxis_constrain='domain', # ADDED
                                          range=c(0, 4), # ADDED
                                          constrain='domain', # ADDED
                                          zerolinecolor = '#ffff',
                                          zerolinewidth = 2,
                                          gridcolor = 'ffff'),
                                        yaxis = list(
                                          yaxis_autorange=FALSE, # ADDED
                                          zerolinecolor = '#ffff',
                                          zerolinewidth = 2,
                                          gridcolor = 'ffff')
)

大部分这是解除直接从plotly网站,只是使一个简单的情节。根据我所读到的内容,我添加了一些行来测试不同的东西,这些东西听起来可能会限制平移。他们没有。我相信我可能把它们放错了地方,但试验滑动它们并没有帮助。事实上,使用约束的一些实现实际上导致我的plotly渲染在我的闪亮应用程序的输出窗口中被压扁。

oalqel3c

oalqel3c1#

是的,有几种方法可以限制Plotly for R中的绘图,以便与绘图交互的用户遇到他们无法平移超过预定值的边界。
设置轴范围:这将指定可在轴上显示的最小值和最大值。对于x轴:

fig <- fig %>% layout(xaxis = list(range = c(0, 100)))

将轴约束到打印域:这将防止轴被缩放或平移到绘图域之外。对于x轴:

fig <- fig %>% layout(xaxis = list(constrain = "domain"))

设置自动范围属性:这将阻止Plotly根据数据自动调整轴的范围。要防止y轴自动调整其范围,请执行以下操作:

fig <- fig %>% layout(yaxis = list(autorange = FALSE))

使用updatemenus功能:这允许用户选择轴的预定义范围。这是一个伟大的方式,允许快速放大或缩小特定地区。

fig <- fig %>% layout(
  updatemenus = list(
    list(
      type = 'buttons',
      direction = 'down',
      x = 0.0,
      xanchor = 'left',
      y = 1.0,
      yanchor = 'top',
      pad = list(r = 10, t = 10),
      buttons = list(
        list(
          label = 'Zoom to [-1, 1]',
          method = 'relayout',
          args = list('xaxis.range', list(-1, 1))
        ),
        list(
          label = 'Zoom to [-5, 5]',
          method = 'relayout',
          args = list('xaxis.range', list(-5, 5))
        ),
        list(
          label = 'Reset',
          method = 'relayout',
          args = list('xaxis.autorange', TRUE)
        )
      )
    )
  )
)

这将创建一个下拉菜单,允许用户选择x轴的预定义范围。“重置”按钮将范围重置为其默认值。
在使用布局调整之前,请记住设置虚拟数据和初始图(图)。本指南重点介绍布局选项。

相关问题