[PYTHON] (Pour ceux qui ne connaissent pas Matplotlib) Conseils pour dessiner des graphiques avec Seaborn

Cet article présente quelques petits conseils qui ne sont (probablement) pas écrits dans les articles existants. Bien que la plupart d'entre eux soient devenus l'utilisation de matplotlib, le fait que les personnes qui n'ont jamais touché matplotlib essaient soudainement d'utiliser Seaborn est expliqué sur la base de la connaissance de matplotlib. J'écrirai qu'il sera utile dans le rôle de complément.

Afficher le graphique dessiné

C'est une fonction du côté matplotlib, et elle est affichée lorsque plt.show () est appelé après le dessin.

showyourplot.py


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns  # cf. https://www.reddit.com/r/learnpython/comments/5oscmr/why_is_seaborn_commonly_imported_as_sns/

Z = np.random.random(1000)

sns.distplot(Z, kde=False)  # kdf stands for Kernel Density Estimation, which is disabled here.
plt.show()

image.png Une fenêtre apparaîtra comme ceci et vous pouvez voir le graphique. Vous pouvez également l'enregistrer manuellement à partir d'ici.

Enregistrer automatiquement le graphique dessiné

Ceci est également sauvegardé par la fonction de matplotlib. Ajoutez-le à la fin du code ci-dessus.

plt.savefig("seaborntest.png ")  # save as png file

seaborntest.png Un fichier comme celui-ci a été enregistré avec le nom de fichier seaborntest.png.

plt.savefig("seaborntest.pdf")  # output format detected automatically

Vous pouvez l'enregistrer au format pdf en changeant simplement l'extension. Les données vectorielles étant conservées, vous pouvez les modifier ultérieurement avec Adobe Illustrator, etc. si nécessaire.

Empêche plusieurs graphiques de se chevaucher

Même dans l'exemple ci-dessus, il y a deux chevauchements, mais surtout lors du dessin et de l'enregistrement d'un grand nombre de graphiques, il est nécessaire d'effacer le contenu dessiné avant chaque fois. Pour ce faire, appelez plt.clf ().

savemanyplots.py


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

for i in range(10):
    plt.clf()  # flush previous drawings
    sns.set_context('poster')  # use large fonts
    Z = np.random.random(1000)
    sns.distplot(Z, kde=False)
    plt.savefig("seaborntest{0}.png ".format(i),dpi=300)  # output high-resolution png

image.png Nous avons pu générer 10 sorties avec des contenus différents. De plus, ici, la taille de la police est augmentée avec set_context ('poster'), et un graphique haute définition est généré avec'dpi = 300 'avec l'option savefig.

Ajustez la police

En fonction de l'application, il peut arriver que vous souhaitiez utiliser des caractères obliques, des exposants et des indices. Vous trouverez ci-dessous un exemple de falsification des données d'iris. Si vous l'écrivez en notation TeX comme ceci, il sera reflété tel quel. À propos, l'étiquette de l'axe des x est effacée et l'étiquette de l'axe des y est modifiée. Nous avons également changé la palette de couleurs.

tweakfonts.py


import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

iris = sns.load_dataset('iris')
iris = iris.replace('setosa', '$sp. \mathrm{str.}$')  # italic and roman
iris = iris.replace('versicolor', '$\mathbf{amp^R}$')  # bold with superstring
iris = iris.replace('virginica', '$mutant_1$')  # italic with substring

sns.set_context('poster')
fig = sns.barplot(x='species',y='sepal_length',data=iris,palette='gray')
fig.set_xlabel('')  # no label on the categorical axis
fig.set_ylabel("Survival Rate")  # refine the y-axis label
plt.savefig('survival.png')

survival.png

Lien

Certaines personnes ont déjà expliqué comment utiliser Seaborn en général, veuillez donc vous y référer. http://qiita.com/hik0107/items/3dc541158fceb3156ee0 http://qiita.com/koji_france/items/47fbb89b0922251a20bb http://qiita.com/koji_france/items/87c5d4d08fdc3ad0e9b4 https://nkmk.github.io/blog/python-seaborn-matplotlib/

Recommended Posts

(Pour ceux qui ne connaissent pas Matplotlib) Conseils pour dessiner des graphiques avec Seaborn
Conseils de dessin avec matplotlib côté serveur
[Python] Personnalisez la palette de couleurs lors du dessin de graphiques avec matplotlib
Dessin en temps réel avec matplotlib
Méthode de dessin graphique avec matplotlib
Animer plusieurs graphiques avec matplotlib
Pour ceux qui ont du mal à dessiner des graphiques avec python
[python] Comment utiliser Matplotlib, une bibliothèque pour dessiner des graphiques
Conseils pour exécuter Go avec Docker
Dessinez facilement des graphiques avec matplotlib
Tracez des graphiques en noir et blanc adaptés aux papiers avec matplotlib ou pylab
Paramètres japonais pour les axes matplotlib et Seaborn
Essayez de dessiner une distribution normale avec matplotlib
Ecrire des graphiques SVG avec matplotlib avec heroku
Afficher le graphique japonais avec VS Code + matplotlib
Carte thermique pour la recherche de grille avec Matplotlib
Conseils pour utiliser python + caffe avec TSUBAME
Conseils pour tracer plusieurs lignes avec des pandas
Les bases de Pandas pour les débutants ③ Créez un histogramme avec matplotlib
Premiers pas avec le dessin avec matplotlib: écrire des fonctions simples
Tracer la courbe ROC pour la classification binaire avec Matplotlib
[Python] Comment dessiner plusieurs graphiques avec Matplotlib
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Dessin graphique avec jupyter (notebook ipython) + matplotlib + vagrant
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ② ~