Wie zeichne ich ein Farbrad mit ggplot?

8

Ich lese das Buch "ggplot2 - Elegante Grafik für die Datenanalyse" (Wickham, 2009) , der Abschnitt "Skalierung" (Seite 32) sagt dies:

  

Die Skalierung umfasst dann die Abbildung der Datenwerte auf Punkte in diesem Bereich.   Es gibt viele Möglichkeiten, dies zu tun, aber hier ist cyl kategorisch   Englisch: www.weisang.info/index.php?id=143&t...h=ddbb8dcdc9 Variable wir ordnen Werte gleichmäßig verteilten Farben auf dem Farbrad zu, wie   in Abbildung 3.4 gezeigt. Eine andere Zuordnung wird verwendet, wenn die Variable ist   kontinuierlich. Das Ergebnis dieser Umrechnungen ist Tabelle 3.4   enthält Werte, die für den Computer von Bedeutung sind.

Das Buch erklärt nicht im Detail, wie man diese Tabelle 3.4 bekommt, geschweige denn Abbildung 3.4. Die integrierte Datenbank ist mpg . Jeder hat eine Idee, wie man diese Tabelle und Grafik bekommt? Vielen Dank im Voraus.

    
Ουιλιαμ Αρκευα 31.01.2014, 21:17
quelle

2 Antworten

10

Ich frage mich, wie ich das ohne coord_polar() machen könnte, da das Beispiel aus Wickhams Buch eindeutig nicht funktioniert. Es stellt sich heraus, dass Sie einfach geom_point(...) verwenden können.

%Vor%

Dies rendert in ein paar Sekunden. Diese Referenz gibt an, dass die Standardhelligkeit l = 65 ist.

    
jlhoward 01.02.2014, 01:35
quelle
8

Dies entspricht dem, wonach Sie suchen, aber die Farbübergänge sind möglicherweise nicht glatt genug. Hoffentlich kann jemand anderes dies verbessern:

Code angepasst von hier .

%Vor%

Sie können glattere Farbübergänge erzielen, indem Sie für die Werte h und s ein feineres Raster verwenden, das Rendern des Plots dauert jedoch sehr lange. Sie können die Helligkeit ändern, indem Sie den Wert von v zwischen Null und 1 setzen. (Per @ BrodieGs Kommentar, setzen Sie v = 1/2, um die Helligkeitsstufe der Figur in Hadleys ggplot2 Buch zu erhalten.)

Unten sehen Sie eine Version des Diagramms mit einer Schrittweite von 0,001 für die h -Werte (wobei die s -Schrittgröße bei 0,05 bleibt). Dies dauerte ein paar Minuten, um auf meinem relativ neuen Macbook Pro zu rendern, aber die Übergänge sind entlang der h -Koordinate ziemlich glatt:

%Vor%

Um eine Farbtabelle zu erhalten, können Sie die Funktion hsv() verwenden, die hexadezimale Farbwerte zurückgibt. Zum Beispiel:

%Vor%     
eipi10 31.01.2014 22:36
quelle

Tags und Links