【发布时间】:2016-08-06 23:41:23
【问题描述】:
我有一些为反应性闪亮应用程序编写的代码,该应用程序具有可变轴。
我让它们按照我的意愿显示,除了一件事。我需要两个轴都在对数尺度上而不是线性上。我找到了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 个点。它还告诉我选择的行数,标准选择的行数约为 1400,所以我应该看到 1400 个点。使用线性我确实看到了所有的点。不知道我做错了什么,但我赌的是呈现数据而不是呈现数据
-
我问的是零值和负值,因为它们的日志是未定义的。因此,任何为零或负数的数据都不会显示在您的图表中(可能带有消息或警告)。如果没有可重现的示例,很难提供帮助。
ggvis是否在shiny之外工作? -
没有 0、负数或未知值。 A 和 B 的范围是从 0.14 到 2000。我发现添加 expand = 0 可以让我在图中得到想要的点。虽然我需要了解如何调整要设置的轴上显示的值而不是 2e+0 ..2e+3。