2016-07-08 4 views
1

Ich bin daran interessiert, anfänglich nur Punkte von einem ausgewählten Satz von Werten einer Variablen zeigen zu können. Also, im Beispiel unten zeigen nur Team-Werte 'a' zunächst mit dem 'b' in der Legende ausgegraut aber togglableWie man R plotly Diagramm mit nur einigen sichtbaren Werten initiieren

library(plotly) 
library(dplyr) 

df <- data.frame(year=(c(2000,2001,2001,2002)),team=c("a","b","a","b"),values=c(1,3,2,4),stringsAsFactors = FALSE) 

plot_ly(data=df, x=year,y=values,color=team,mode="markers") 

enter image description here

Auch, wie können die Achsen zeigen nur ganze Zahlen - nicht sicher, wie die Reichweite ändern für diese

Antwort

1

Simplest gerecht zu werden ist mit allen Spuren standardmäßig deaktiviert zu starten, und sie einzeln schalten, indem

plot_ly(data=df, x=year,y=values,color=team,mode="markers", visible="legendonly") 
auf der Legende klicken

Wenn Sie beginnen möchten, dass einige Punkte bereits sichtbar sind und die anderen deaktiviert sind, müssen Sie zwei Spuren verwenden, die zweite mit visible="legendonly". Wenn Sie dies auf diese Weise tun, müssen Sie auch die Farben manuell auswählen.

plot_ly(data=df[which(df$team=="a"),], x=year,y=values, 
     color=team, colors = "blue", mode="markers") %>% 
    add_trace(data=df[which(df$team=="b"),], x=year,y=values, color=team, 
     colors="green", mode="markers", visible="legendonly") 

Sie steuern die Achsen und Zecken mit der layout Funktion. Um Zecken nur in Einheitsintervallen setzen können Sie diese verwenden

plot_ly(data=df[df$team=="a",], x=year,y=values,color=team, colors = "blue", mode="markers") %>% 
    add_trace(data=df[df$team=="b",], x=year,y=values, color=team, colors = "green", mode="markers", visible="legendonly") %>% 
    layout(xaxis = list(autotick = FALSE, tickmode="linear", tick0 =2000, dtick=1, range=c(1999.5,2003.5)), 
     yaxis = list(autotick = FALSE, tickmode="linear", tick0 =0, dtick=1, range=c(0,5))) 

Eine vollständige Beschreibung aller Optionen in der plotly API können bei https://plot.ly/r/reference/

+0

Vielen Dank für Antwort auf beide Fragen zu finden. Ich habe gerade edit geschickt, da Ihr finaler Code data.frame nicht in der Klammer spezifiziert hat, sondern df $ Team statt Team sein muss – pssguy