Ich habe das gleiche Problem mit geologischen Karten in QGIS 2.10. Die mitgelieferten Karten haben einen CMYK-Farbcode (eigentlich "YMCK"), der mit der folgenden Formel interpretiert werden kann:
color_cmyk(
CASE WHEN substr("COLOR_CODE",3,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",3,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",3,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",3,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",3,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",3,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",3,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",3,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",3,1 ) IS 8 THEN 80
ELSE 100
END,
CASE WHEN substr("COLOR_CODE",2,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",2,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",2,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",2,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",2,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",2,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",2,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",2,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",2,1 ) IS 8 THEN 80
ELSE 100
END,
CASE WHEN substr("COLOR_CODE",1,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",1,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",1,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",1,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",1,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",1,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",1,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",1,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",1,1 ) IS 8 THEN 80
ELSE 100
END,
CASE WHEN substr("COLOR_CODE",4,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",4,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",4,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",4,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",4,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",4,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",4,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",4,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",4,1 ) IS 8 THEN 80
ELSE 0
END)
Dies ergibt jedoch die schwarze Farbe in den Legendenfeldern.
Daher dachte ich, ich könnte das Problem lösen, indem ich das obige Skript verwende, um ein neues Farbfeld zu berechnen, das recht gut funktioniert und RGB-Werte wie 255.200.220 zurückgibt. Dann habe ich es versucht
Color_rgb("Color")
ohne Glück eine datendefinierte Farbe zu erzeugen (ungültige Formel)! Also habe ich das Farbfeld in 3 Felder unterteilt - Rot, Grün und Blau und die folgende Formel -
color_rgb("Red","Green","Blue")
Geben Sie im Feld Datendefinierte Farbformel die richtige Farbe auf der Karte an, und die Legende ist nicht mehr schwarz. Sie verwendet jedoch die Farbrampeneinstellungen, um die Legendenfarbe zu bestimmen.
Es scheint, dass wir eine Option im Dropdown-Feld Farbrampe benötigen, um datendefinierte Farben anzugeben, und dann sollte sie die beliebige datendefinierte Farbe verwenden, um die Legende zu erstellen.
Alle anderen Problemumgehungen sind in Ordnung, aber wenn Sie den Legendenfilter auf dem Map Composer verwenden, möchten Sie das richtige Ergebnis erzielen und müssen nicht zu jedem Legendenfeld gehen und die RGB-Codes in die ausgewählten Farboptionen eingeben.