绘图:无法使对数轴工作(使用 Shiny + GGvis + Dplyr)
Plotting : Can't get log axis to work (with Shiny + GGvis + Dplyr)
我为具有可变轴的响应式闪亮应用程序编写了一些代码。
我让它们按照我的意愿显示,除了一件事。我需要两个轴都在对数刻度上而不是线性的。我找到了 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")
通过在代码中添加扩展,它变成了对数刻度。
我也承认 format="d", grid=FALSE 到 add_axis 所以它看起来好一点。
仍然对轴上的值不满意,但这是另一个问题。
我替换的代码:
add_axis("x", title = xvar_name, format='d', grid = FALSE) %>%
scale_numeric("x", trans = "log", expand=0) %>%
我为具有可变轴的响应式闪亮应用程序编写了一些代码。
我让它们按照我的意愿显示,除了一件事。我需要两个轴都在对数刻度上而不是线性的。我找到了 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")
通过在代码中添加扩展,它变成了对数刻度。 我也承认 format="d", grid=FALSE 到 add_axis 所以它看起来好一点。 仍然对轴上的值不满意,但这是另一个问题。
我替换的代码:
add_axis("x", title = xvar_name, format='d', grid = FALSE) %>%
scale_numeric("x", trans = "log", expand=0) %>%