绘图:无法使对数轴工作(使用Shiny + GGvis + Dplyr)

时间:2016-04-15 06:26:22

标签: r plot dplyr ggvis shiny

我有一些针对反应性闪亮应用程序编写的代码,它具有可变轴。 除了一件事,我让他们按照我的意愿展示。我需要两个轴都是对数刻度而不是线性。我发现解决方案为trans = "log",但这导致我的图表显示为空。任何解决方案?

我用于绘图的代码(如果我将log更改为linear,其作品):

vis <- reactive({
  # Labels for axes
  xvar_name <- names(axis_vars)[axis_vars == input$xvar]
  yvar_name <- names(axis_vars)[axis_vars == input$yvar]

  xvar <- prop("x", as.symbol(input$xvar))
  yvar <- prop("y", as.symbol(input$yvar))

  gegevens %>%
    ggvis(x = xvar, y = yvar) %>%
    layer_points(size := 50, size.hover := 200,
                 fillOpacity := 0.2, fillOpacity.hover := 0.5,
                 stroke = ~bron, key := ~Project.ID) %>%
    add_tooltip(gegevens_tooltip, "hover") %>%
    add_axis("x", title = xvar_name) %>%
    add_axis("y", title = yvar_name) %>%
    add_legend("stroke", title = "Gegevens van:", values = c("A", "B")) %>%
    scale_numeric("x", trans = "log") %>%
    scale_numeric("y", trans = "log") %>%
    scale_nominal("stroke", domain = c("A", "B"),
                  range = c("blue", "#aaa")) %>%
    set_options(width = 600, height = 600)
})

vis %>% bind_shiny("plot1")

1 个答案:

答案 0 :(得分:0)

通过向代码添加expand,它将成为对数比例。 我也承认格式=“d”,网格= FALSE到add_axis所以看起来好一点。 仍然不满意轴上的值,但这是另一个问题。

我替换了

代码:

add_axis("x", title = xvar_name, format='d', grid = FALSE) %>%

scale_numeric("x", trans = "log", expand=0) %>%