benutzerdefinierte Füllfarbe in ggvis (und anderen Optionen)

8

Ich versuche, ggvis zu verwenden, um ein NFL-Zeitplan-Diagramm für die Jahreszeit 2014 zu erstellen. Die Daten stammen von FootballOutsiders.com, und später mache ich eine Shiny-App, die automatisch Daten von der Website abschreibt, während sie während der Saison aktualisiert wird. Das Beispiel unten ist ziemlich nah, aber ich würde gerne ein paar Änderungen vornehmen. Ich möchte ...

  1. Fügen Sie den numerischen Wert "Verteidigung" in jede Zelle des Diagramms ein, damit die Visualisierung dem ursprünglichen Datenrahmen "df" ähnelt.

  2. Passen Sie die Farbskala so an, dass positive Werte zunehmend orange und negative Werte zunehmend blau werden (d. h. negativer = mehr blau).

  3. Eine Alternative zu # 2 könnte darin bestehen, einen Farbverlauf von orange nach blau zu erstellen und die Deckkraft auf 0,5 zu reduzieren, wenn der Wert von "Verteidigung" gegen Null geht.

  4. Sie können die Farbe von NA wählen, da sie momentan im Diagramm schwarz erscheint.

Ich habe mit add_scale() und props() herumgebastelt, aber bisher hat noch nichts funktioniert.

Hier ist das Diagramm:

Hier sind die Daten:

%Vor%

Und hier ist der Code so weit:

%Vor%     
rsoren 17.07.2014, 18:01
quelle

2 Antworten

14

Ich setze die Farben für jede Zelle, indem ich eine neue Variable def.color erstelle, die jeden Wert von defense auf eine bestimmte Farbe abbildet. In ggplot2 können Sie die Farben direkt innerhalb des Aufrufs von ggplot mit einer Codezeile wie scale_fill_manual() festlegen, anstatt eine Farbvariable zum Datenrahmen hinzuzufügen. Ich hoffe, es gibt eine Möglichkeit, das in ggvis zu tun, aber ich habe es noch nicht gefunden. Also, für jetzt, hier gehen wir:

%Vor%

Jetzt erstellen wir die Handlung. Um die Farben zu erhalten, mappen Sie def.color auf fill mit := , um die Standardfarben zu überschreiben. Um die Werte von defense hinzuzufügen, verwenden Sie layer_text . Ich bin nicht glücklich mit der Textplatzierung in jeder Zelle, aber das ist das Beste, was ich mir für jetzt vorstellen konnte.

%Vor%

    
eipi10 17.07.2014, 22:04
quelle
2

Eine Lösung, die ich gefunden habe, um eine Legende anzuzeigen, die die Funktion scale_ordinal verwendet. Ich habe viel Code von @ eipi10 benutzt, danke!

%Vor%

    
skasch 18.05.2015 17:47
quelle

Tags und Links