Qualitative Farbpalette - Fotokopiersicher (Graustufen bereit)

12

Ich suche eine qualitative 5-Klassen-Farbpalette, die in Schwarzweißdruckern gedruckt werden kann.

Das folgende Bild zeigt eine Karte in Farbe (oben: qualitativ, unten: divergierend) und wie jede in Graustufen aussieht (rechte Seite). Beide Farbpaletten ( Set3und Spectral) gehören zu ColorBrewer .

  1. [UL] Qualitativ Set3
  2. [UR] Qualitativ Set3 in Graustufen
  3. [LL] Abweichend Spectral
  4. [LR] SpectralGraustufenabweichung

Geben Sie hier die Bildbeschreibung ein

Ich leide besonders daran, Gruppen im oberen rechten Bild zu erkennen, während das untere (spektrale) viel besser, wenn nicht sogar perfekt ist (ich kann nicht sagen, welches blau oder rot war). Und laut ColorBrewer ist das Spektralfarbschema (das ich hier verwendet habe) das einzige photocopy safefür eine 5-Klassen-Palette.

Das Reduzieren von Klassen (auf 3 oder 4) kann eine Option sein, aber ich befürchte, dass dies nicht der beabsichtigte Zweck dieser Karte war.

Dies hängt wahrscheinlich nicht mit GIS-Software zusammen, aber ich verwende grundsätzlich QGIS, das ColorBrewer, cpt-city und andere Paletten und Farbrampen bietet.


@obrl_soil schlug dies ist Viridis Farbsatz

Geben Sie hier die Bildbeschreibung ein


@underdark schlug vor, dass dies zwei Arten von 4 colors + whiteAnsätzen sind.

Geben Sie hier die Bildbeschreibung ein

LINKS: Orange-Rot + Weiß (sequentiell), RECHTS: Lila-Orange + Weiß (divergierend)

Kazuhito
quelle
Sie haben bereits eine gute Antwort gefunden, aber ich möchte Ihnen colorbrewer2.org vorstellen , mit dem Sie schöne Farbschemata
erstellen
@LaughU Es ist in der Tat eine Website, auf die ich mich bezogen habe ... Entschuldigung, wenn es nicht klar erwähnt wurde. Aber danke, es ist wirklich eine gute Ressource, da stimme ich zu.
Kazuhito

Antworten:

8

Haben Sie sich die Familie Viridis angesehen? Der einfachste Weg, sie in QGIS hinzuzufügen, ist über diesen Link - http://rocksandwater.net/blog/2016/07/qgis_perceptually_uniform_colorramps/

obrl_soil
quelle
1
Vielen Dank @obrl_soil! Das ist toll. Ich glaube, ich habe den Namen viridis vor einiger Zeit in der R-Community gesehen, aber wahrscheinlich hatte ich nicht genug Aufmerksamkeit geschenkt. (Viridis-Ergebnis zu meinem Beitrag als Bearbeiten hinzugefügt).
Kazuhito
10

Wie ColorBrewer vorschlägt, ist nur das 5-Klassen-Spektralfarbschema für die Verwendung durch Fotokopierer (dh Graustufen) "sicher". Die einfachste Lösung besteht darin, eine andere Methode zur Unterscheidung der Klassen zu verwenden, z. B. Schraffur.

In QGIS ist es einfach, 5 verschiedene Schraffuren in einer Klassifizierung auszuwählen, indem Sie den Füllpinsel ändern.

Geben Sie hier die Bildbeschreibung ein

Oder verwenden Sie eine Punktmusterfüllung mit unterschiedlichen Abständen:Geben Sie hier die Bildbeschreibung ein

Ian Turton
quelle
1
Danke @iant, aber sollte ich es nehmen (ich meine, der ColorBrewer) impliziert, dass es keine andere Möglichkeit gibt, ein 5-Klassen-Farbschema als dieses bestimmte Set zu erstellen? Wenn ja, habe ich kein Problem mit dem Schlüpfen.
Kazuhito
7

Colorbrewer 2.0 sagt uns im Grunde, dass es kein "fotokopiersicheres" Farbschema mit 5 Farben gibt. Hier ist also die 4-Farben-Lösung:

Geben Sie hier die Bildbeschreibung ein

Natürlich zählt "Weiß" nicht als potenzielle fünfte Farbe, daher ist diese Lösung möglicherweise noch für Ihre Anwendung ausreichend.

Unterdunkel
quelle
1
Nett. Das Hinzufügen von Weiß ist eine brillante Idee, die mir nie in den Sinn gekommen ist (ich war fast bereit, ColorBrewer aufzugeben). Vielen Dank!
Kazuhito
4

Ich hatte das gleiche Problem. Ich brauchte 8 Klassen. Ich habe eine Problemumgehung erstellt, mit der Sie zumindest die Kategorien so unterscheidbar wie möglich gestalten können. Es vergrößert den Abstand zwischen den Sättigungswerten jeder Farbe, die standardmäßig vom Farbbrauer erstellt werden. Auf diese Weise erhalten Sie die unterscheidbarsten Kategorien im Schwarzweißdruck. Die beiden Diagramme ändern sich nur geringfügig, wie Sie unten sehen können, aber in bw kann es einen Unterschied machen.

Sie müssen R kennen, um das Skript verwenden zu können:

library("ggplot2")
library("colorspace")
library("RColorBrewer")


# display all color scales with n=8
display.brewer.all(n = 8,type = "div")
# choose a brewer
brewer.pal(8,"Spectral")
# transform palette to HSV values
(palette.HSV<-as(hex2RGB(brewer.pal(8,"Spectral")), "HSV")) 

# plot
plot(1:8,1:8,pch=21,bg=hex(palette.HSV),col=hex(palette.HSV),cex=5)

# sort and get indices of HSV values
sort(palette.HSV@coords[,2],index.return=TRUE)

# calculate steps for distance
9/8 # 8 classes until 0.9 saturation

# change accordingly
palette.HSV@coords[1,2]<-0.7875 # swapped with second
palette.HSV@coords[2,2]<-0.675
palette.HSV@coords[3,2]<-0.5625
palette.HSV@coords[4,2]<-0.3375
palette.HSV@coords[5,2]<-0.225
palette.HSV@coords[6,2]<-0.1125
palette.HSV@coords[7,2]<-0.45
palette.HSV@coords[8,2]<-0.9

plot(1:8,1:8,pch=21,bg=hex(palette.HSV),col=hex(palette.HSV),cex=5)

# save your costum colorscale
my.scale<-hex(palette.HSV)

geänderte Werte geänderte Werte

ursprüngliche Werte Geben Sie hier die Bildbeschreibung ein

Bearbeiten: Wenn Sie auch die Helligkeit ändern möchten (siehe Diskussion unten), verwenden Sie den folgenden Code:

# change brightness accordingly (reverse order)
palette.HSV@coords[1,3]<- 0.225
palette.HSV@coords[2,3]<-0.4
palette.HSV@coords[3,3]<-0.5625
palette.HSV@coords[4,3]<-0.9
palette.HSV@coords[5,3]<-0.7875
palette.HSV@coords[6,3]<-0.675
palette.HSV@coords[7,3]<-0.3
palette.HSV@coords[8,3]<-0.1125
Joaoal
quelle
1
Danke @joaoal! Haben Sie etwas dagegen, für jedes Bild eine Graustufendarstellung hinzuzufügen? Meine schnelle Testversion Ihres Codes ergab fast identische Bilder (für meine ungeübten Augen), als sie sich in 8-Bit-Graustufen verwandelten.
Kazuhito
1
@Kazuhito nicht sicher, wie man das in R macht. Im bw-Druck ist meine Lösung eindeutig ein bisschen besser als die Standardeinstellung, aber wie ich oben geschrieben habe, ist es schwierig, wirklich gute Unterschiede zu machen, wenn Sie 8 Klassen verwenden. In Ihrem Fall mit 5 Klassen könnte es besser sein. Neben der Verbesserung der Farbrampe können Sie Ihrer Karte auch Symbole in der Mitte jedes Polygons hinzufügen, wobei jedes eindeutige Symbol eine andere Kategorie darstellt, oder Sie können verschiedene Füllstile verwenden, z. B. Linienmuster. Meine Lösung war für Rasterdaten, bei denen Sie so etwas nicht tun können.
Joaoal
2
+1 @joaoal Vielen Dank für Ihre zusätzlichen Informationen. Nur ein Gedanke, aber wie wäre es, wenn Sie palette.HSV@coords[x,3]den Wert (oder die Helligkeit) im HSV-Farbraum ändern? (Sie haben an der Sättigung gearbeitet). Mein schneller Test coords[ ,3]ergab mehr Kontrast, aber ich bin mir in Ihrer Umgebung nicht sicher.
Kazuhito
2
@Kazuhito Ich habe es für mein Beispiel versucht und keine besseren Ergebnisse erzielt, wenn ich nur die Helligkeit ändere. Theoretisch hängt die Sättigung direkt mit der Grauheit zusammen, wobei 0 weiß und 1 schwarz im Schwarzweißdruck ist / oder die Vollfarbe, z. B. "rot" im Farbdruck. Die Helligkeit wirkt sich auch auf die Grautöne im Druck aus, aber irgendwie ist Ihr Bereich begrenzt, da die Farbe zwischen Vollfarbe, z. B. "Rot" und "Schwarz", geändert wird. Eine Kombination von beiden könnte eine Option sein, und ich habe oben einen Code hinzugefügt, um dies zu berücksichtigen. Ich hatte den Eindruck, dass sich der Unterschied bei helleren Farben nur verbessert, die dunkleren jedoch verschlechtert.
Joaoal
Danke, gut zu wissen. Ich stimme auch zu, dass wir nicht zu viel Wert legen sollten.
Kazuhito