[PYTHON] Einführung in die Palormap-Erweiterungsbibliothek palettierbar

Farbkarten-Erweiterungsbibliothek palettierbar

Haben Sie sich jemals gefragt: "Ich wünschte, ich hätte mehr Farbkarten (oder Farbzyklen)", wenn Sie mit "matplotlib" zeichnen? Hier stellen wir eine praktische Erweiterungsbibliothek vor, die solche Probleme löst. Das ist ** palettetable **. Es sind ** 1599 ** Farbkarten verfügbar. Es gibt 79 Standardfarbkarten für matplotlib, also ungefähr 20 mal ** !!.

Die Farbkarte von matplotlib kann auf verschiedene Arten selbst bearbeitet und erstellt werden, sodass Sie sich nicht wirklich auf die Erweiterungsbibliothek verlassen müssen. palettable ist nur ein Archiv der vielen auf diese Weise erstellten Farbkarten.

Dieser Artikel ist also für ** "Ich möchte mehr Farbkarten verwenden, aber es ist schwierig, diese selbst zu recherchieren und zu erstellen. Wenn Sie eine benutzerfreundliche Erweiterungsbibliothek haben, verwenden Sie sie!" ** ..

Die Liste der Farbkarten für "palettable" ist im Artikel ** hier ** zusammengefasst (ich habe sie getrennt, weil es zu viele gibt). Die ursprüngliche Website (Englisch) ist hier.

Installation

Es kann einfach mit dem Befehl pip installiert werden.

pip install palettable

Verwendung von Palettable (Farbzyklus)

matplotlib folgt beim Zeichnen von Plots dem Standardfarbzyklus. So gehen beispielsweise standardmäßig 10 Teile umher und das 11. Teil kehrt zur ursprünglichen Farbe zurück.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 100) 
fig, ax = plt.subplots()

for i in range(11):
    y = np.sin(x)+i
    ax.plot(x, y)
plt.show()

fig1.png Der zu diesem Zeitpunkt verwendete Farbzyklus war der Standardwert "tab10" in "matplotlib": tab10.png Lassen Sie uns dies nun in einen "palettierbaren" Farbzyklus ändern. Dieses Mal werde ich palettable.scientific.sequential.Tokyo_10 verwenden. Der Farbzyklus von "palettable" ist "palette.scientific.sequential.Tokyo_10.mpl_colors" Sie können es bekommen (fügen Sie einfach .mpl_colors am Ende hinzu). Tokyo_10.png

Verwenden Sie zum Ändern des Farbzyklus ax.set_prop_cycle ():

import numpy as np
import matplotlib.pyplot as plt
import palettable #hinzufügen

x = np.linspace(0, 2*np.pi, 100) 
fig, ax = plt.subplots()
#Fügen Sie die folgende Zeile hinzu
ax.set_prop_cycle('color', palettable.scientific.sequential.Tokyo_10.mpl_colors)

for i in range(11):
    y = np.sin(x)+i
    ax.plot(x, y)
plt.show()

Das Ergebnis ist so. Es hat einen bestimmten Farbzyklus und es geht um 10 Stück. fig2.png

Hier ist das an "ax.set_prop_cycle ()" übergebene "palettable.scientific.sequential.Tokyo_10.mpl_colors" nur ein Python-Listenobjekt. Der Inhalt ist so. Es ist ein standardisiertes 10 x 3-RGB-Array:

>>> palettable.scientific.sequential.Tokyo_10.mpl_colors                                          
[(0.10196078431372549, 0.054901960784313725, 0.20392156862745098),
 (0.27058823529411763, 0.12549019607843137, 0.2980392156862745),
 (0.43137254901960786, 0.24313725490196078, 0.403921568627451),
 (0.5215686274509804, 0.3686274509803922, 0.47058823529411764),
 (0.5529411764705883, 0.4745098039215686, 0.5098039215686274),
 (0.5725490196078431, 0.5803921568627451, 0.5372549019607843),
 (0.592156862745098, 0.6823529411764706, 0.5686274509803921),
 (0.6549019607843137, 0.807843137254902, 0.615686274509804),
 (0.8352941176470589, 0.9490196078431372, 0.7372549019607844),
 (0.996078431372549, 0.996078431372549, 0.8470588235294118)]

Darüber hinaus wird die Anzahl der Runden durch die letzte Anzahl von "palettable.scientific.sequential.Tokyo_10" bestimmt, und die Anzahl, die angegeben werden kann, hängt vom Farbcode ab. Beispielsweise können Sie in "palettable.scientific.sequential.Tokyo_" von "3" bis "20" angeben. Wenn Sie beispielsweise palettable.scientific.sequential.Tokyo_11 verwenden, um mit 11 Teilen herumzugehen, sieht dies wie folgt aus: Tokyo_11.png fig3.png Ich ging mit nur 11 Stück herum.

Verwendung von palettable (Farbkarte)

Es ist endlich die Farbkarte. Eigentlich ist dieser einfacher zu bedienen. Lassen Sie uns zunächst ein zweidimensionales Diagramm mit einem einfachen Beispielcode erstellen.

import numpy as np
import matplotlib.pyplot as plt

xx, yy = np.meshgrid(np.linspace(0, 2*np.pi, 100), np.linspace(0, 2*np.pi, 100))
zz = np.sin(xx+yy)

fig, ax = plt.subplots()
mp = ax.imshow(zz, cmap="Blues") #Geben Sie die Farbkarte in dieser Zeile an
fig.colorbar(mp)

fig4.png Lassen Sie uns nun diese Farbkarte in dieselbe palettable.scientific.sequential.Tokyo_10 wie zuvor ändern. Die Farbkarte für "palettable" lautet "palette.scientific.sequential.Tokyo_10.mpl_colormap" Sie können es bekommen (fügen Sie einfach .mpl_colormap am Ende hinzu).

import numpy as np
import matplotlib.pyplot as plt
import palettable #hinzufügen

xx, yy = np.meshgrid(np.linspace(0, 2*np.pi, 100), np.linspace(0, 2*np.pi, 100))
zz = np.sin(xx+yy)

fig, ax = plt.subplots()
#Ändern Sie die Option cmap in der nächsten Zeile
mp = ax.imshow(zz, cmap=palettable.scientific.sequential.Tokyo_10.mpl_colormap)
fig.colorbar(mp)

fig5.png Die Atmosphäre sieht ganz anders aus.

Der Inhalt von palettable.scientific.sequential.Tokyo_10.mpl_colormap, der der Option cmap zugewiesen wird, ist das Objekt LinearSegmentedColormap von matplotlib.colors:

>>> palettable.scientific.sequential.Tokyo_10.mpl_colormap
<matplotlib.colors.LinearSegmentedColormap at 0x7fb05793f0d0>

Wenn Sie die "palettierbare" Farbkarte verwenden, wird die Farbauflösung auf dieselbe Weise dargestellt wie die letzte Zahl ("_10" -Teil), die die Anzahl der Farbzykluszyklen angibt. Versuchen wir, _3 und _20 zu vergleichen: fig6.png Das Erscheinungsbild wird sich erheblich ändern. Es ist eine gute Idee, die Farbauflösung entsprechend dem Schwankungsbereich zu ändern, den Sie ausdrücken möchten.

schließlich

Die Liste der palettierbaren Farbkarten ist im Artikel ** hier ** zusammengefasst. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Einführung in die Palormap-Erweiterungsbibliothek palettierbar
palettable Farbkartenliste
Einführung in die TestData-Erstellungsbibliothek Mimesis
[Python] Passen Sie den Standard für die Farbkarte an
Geben Sie die Farbe in der matplotlib 2D-Karte an
Lesen Sie die VTK-Datei und zeigen Sie die Farbkarte mit Jupiter an.