2016-04-15 5 views
-1

Ich habe Code für eine reaktive glänzende App geschrieben, die variable Achsen hat. Ich bekomme sie so wie ich will, bis auf eine Sache. Ich brauche beide Achsen auf einer logarithmischen Skala statt linear. Ich fand Lösungen wie trans = "log", aber das führt dazu, dass mein Diagramm leer angezeigt wird. Irgendwelche Lösungen?Plotten: Log-Achse funktioniert nicht (mit Shiny + GGvis + Dplyr)

Der Code i zum Plotten haben (wenn ich log-linear ändern, seine Werke):

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") 
+0

Hat Ihre Daten Null oder negative Werte? – Axeman

+0

Es zeigt Wert, auf der ganz linken Ecke des Diagramms kann ich 1 Punkt sehen. es sagt mir auch die Anzahl der Zeilen ausgewählt, und das sind etwa 1400 mit der Standard-Auswahl, so dass ich 1400 Punkte sehen sollte. Mit linear sehe ich alle Punkte. nicht sicher, was ich falsch mache, aber ich wette, es ist etwas mit der Präsentation der Daten anstelle der Daten zu präsentieren –

+0

Ich frage nach der Null und negative Werte seit das Protokoll für diese undefiniert sind. Daher werden alle Daten, die null oder negativ sind, nicht in Ihrem Diagramm angezeigt (möglicherweise mit einer Nachricht oder Warnung). Es ist schwer, ohne ein reproduzierbares Beispiel zu helfen. Arbeitet das 'ggvis' außerhalb von' shiny'? – Axeman

Antwort

0

durch, um den Code Hinzufügen erweitern sein eine Log-Skala wird. ich gebe auch format = "d", grid = FALSE zu add_axis so sah es ein bisschen besser aus. immer noch nicht mit den Werten auf der Achse zufrieden, aber das ist eine andere Frage. i

Code ersetzt:

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

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