Plotly调试:单步调试模式时运行代码v调试模式时在控制台运行代码

时间:2020-10-15 12:25:21

标签: r plotly

我正在尝试调试将样板图与一些用户输入结合在一起的函数,以创建一个样板图。 我发现一个非常令人费解和莫名其妙的举动,使我对如何补救一无所知。 当我使用调试器进入函数并使用Enter键或“ n”向前并运行代码时,然后在控制台上输入@page "/" <ChildComponent>child content</ChildComponent> ,得到以下图形: Running while debugging

我尝试使用var data = context.Table.ToList();,但结果相同。

但是,如果我仅在调试模式下突出显示相同的代码并运行它,然后在控制台上输入.p,就会得到以下图形: Running from console

环境和输入是相同的,但是由于某种原因,当我手动运行图形时会呈现图形,而当我使用调试器运行图形时却不会呈现图形。有谁知道为什么会发生这种行为以及如何纠正它? 如果代码看起来似乎只是出于某种原因(除了代码恰好位于函数内部而不是直接运行),则无法调试呈现空白图形的函数。

任何见识将不胜感激!

这里是一个代表:

plotly_build(.p)

我正在运行RStudio 1.3.959。 这是我的SessionInfo:

.p

1 个答案:

答案 0 :(得分:1)

好像我将参数传递到plot_ly的过程过于复杂。 xy可以按原样传递,并且公式格式将保留。 rlang::enexpr正在将外部环境附加到x公式,并使其在数据之外的环境中搜索FriendlyProjectName,从而生成了空白图形。

工作功能很简单:

rep_plotly <- function(.d, x = ~ FriendlyProjectName, y = ~ Percent) {
  # If no data return no graph
  if (nrow(.d) < 1) return(NULL)
  .p <- plotly::plot_ly(
    data = .d,
    x = x,
    y = y,
    text = ~ hover,
    hoverinfo = 'text',
    type = "bar"
  )
  return(.p)
}
相关问题