[PYTHON] Présentation de la bibliothèque d'extensions de palette de couleurs palatable

Bibliothèque d'extension de carte de couleur palatable

Vous êtes-vous déjà demandé "j'aurais aimé avoir plus de cartes de couleurs (ou de cycles de couleurs)" en dessinant avec matplotlib? Ici, nous allons introduire une bibliothèque d'extensions pratique qui résout de tels problèmes. C'est ** palettable **. Il existe ** 1599 ** cartes couleur disponibles. Il y a 79 cartes de couleurs standard pour matplotlib, donc c'est environ 20 fois ** !!.

La carte des couleurs de matplotlib peut être éditée et créée par vous-même de différentes manières, donc on peut dire qu'il n'est en fait pas nécessaire de s'appuyer sur la bibliothèque d'extension. palettable est juste une archive des nombreuses couleurs créées de cette manière.

Donc, cet article est pour ** "Je veux utiliser plus de couleurs, mais c'est difficile de rechercher et de créer moi-même. Si vous avez une bibliothèque d'extensions facile à utiliser, utilisez-la!" ** ..

La liste des cartes de couleurs pour palettable est résumée dans l'article ** ici ** (je l'ai séparé car il y en a trop). Le site Web d'origine (en anglais) est ici.

Installation

Il peut être facilement installé avec la commande pip.

pip install palettable

Comment utiliser palettable (cycle de couleur)

matplotlib suit le cycle de couleurs par défaut lors du dessin de tracés. Par exemple, comme ceci, par défaut, 10 pièces circulent et la 11e pièce reprend sa couleur d'origine.

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 Le cycle de couleurs utilisé à ce moment était le tab10 par défaut dans matplotlib: tab10.png Maintenant, changeons cela en un cycle de couleurs «palatable». Cette fois, j'utiliserai palettable.scientific.sequential.Tokyo_10. Le cycle de couleur de palettable est palette.scientific.sequential.Tokyo_10.mpl_colors Vous pouvez l'obtenir (finissez simplement par .mpl_colors). Tokyo_10.png

Pour changer le cycle de couleur, utilisez ʻax.set_prop_cycle () `:

import numpy as np
import matplotlib.pyplot as plt
import palettable #ajouter à

x = np.linspace(0, 2*np.pi, 100) 
fig, ax = plt.subplots()
#Ajoutez la ligne suivante
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()

Le résultat est comme ça. Il a un cycle de couleur spécifié et il va avec 10 pièces. fig2.png

Ici, le palettable.scientific.sequential.Tokyo_10.mpl_colors passé à ʻax.set_prop_cycle ()est juste un objet Pythonlist`. Le contenu est comme ça. Il s'agit d'une matrice RVB standardisée 10 par 3:

>>> 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)]

De plus, le nombre de tours est déterminé par le dernier nombre de palettable.scientific.sequential.Tokyo_10, et le nombre qui peut être spécifié dépend du code couleur. Par exemple, dans palettable.scientific.sequential.Tokyo_, vous pouvez spécifier de 3 à 20. Par exemple, si vous utilisez palettable.scientific.sequential.Tokyo_11 pour faire le tour avec 11 pièces, ce sera comme suit: Tokyo_11.png fig3.png Je suis allé avec seulement 11 pièces.

Comment utiliser palettable (carte des couleurs)

C'est enfin la carte des couleurs. En fait, celui-ci est plus facile à utiliser. Commençons par créer un tracé bidimensionnel avec un exemple de code simple.

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") #Spécifiez la palette de couleurs sur cette ligne
fig.colorbar(mp)

fig4.png Maintenant, changeons cette carte de couleurs en la même palettable.scientific.sequential.Tokyo_10 qu'auparavant. La palette de couleurs pour palettable est palette.scientific.sequential.Tokyo_10.mpl_colormap Vous pouvez l'obtenir (ajoutez simplement .mpl_colormap à la fin).

import numpy as np
import matplotlib.pyplot as plt
import palettable #ajouter à

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()
#Changer l'option cmap sur la ligne suivante
mp = ax.imshow(zz, cmap=palettable.scientific.sequential.Tokyo_10.mpl_colormap)
fig.colorbar(mp)

fig5.png L'atmosphère est assez différente.

Le contenu de palettable.scientific.sequential.Tokyo_10.mpl_colormap donné à l'option cmap est l'objet LinearSegmentedColormap de matplotlib.colors:

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

De plus, lors de l'utilisation de la palette de couleurs «palettable», elle représente la résolution des couleurs de la même manière que le dernier nombre (partie «_10») qui indique le nombre de cycles de cycle de couleur. Essayons de comparer _3 et _20: fig6.png L'apparence changera considérablement. Il est judicieux de modifier la résolution des couleurs en fonction de la plage de fluctuation que vous souhaitez exprimer.

à la fin

La liste des couleurs palettables est résumée dans l'article ** ici **. Merci d'avoir lu jusqu'au bout.

Recommended Posts

Présentation de la bibliothèque d'extensions de palette de couleurs palatable
liste des cartes de couleurs palettables
Présentation de la bibliothèque de création TestData Mimesis
[Python] Ajuster la norme de la carte des couleurs
Spécifiez la couleur dans la carte 2D matplotlib
Lisez le fichier VTK et affichez la carte des couleurs avec jupyter.