Stellen Sie den Griff der Legende Easy-Lösung mit den folgenden zwei Zeilen ein!
python
handler, label = ax.get_legend_handles_labels()
ax.legend(handler, ["label1", "label2"])
Wir werden titanische Daten als Beispiel verwenden. Der Titanic-Datensatz wird an vielen Stellen beschrieben. Zum Beispiel der folgende Artikel. Referenz: "Titanic: Tabellarischer Datensatz zum Überlebensstatus (13 Elemente wie Alter und Geschlecht) von Titanic-Passagieren" https://www.atmarkit.co.jp/ait/articles/2007/02/news016.html
python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set("talk")
df = sns.load_dataset('titanic')
df.head()
Das Ausgabeergebnis sieht folgendermaßen aus.
Hier werde ich die Altersverteilung für jede Klasse (Passagierklasse) darstellen.
python
sns.violinplot(data=df, x='pclass', y='age')
Wenn wir uns die Abbildung ansehen, können wir sehen, dass es in pclass3 viele jüngere Generationen gibt. Grab tiefer, "Gibt es einen Unterschied in Leben und Tod in der Altersverteilung jeder Klasse?" Ich würde gerne ... sehen.
python
fig,ax=plt.subplots()
sns.violinplot(data=df, x='pclass', y='age',hue="alive",split=True, ax=ax)
ax.legend(loc='upper left',bbox_to_anchor=(1.05,1))
Sie können den Geigenplot durch Angabe des Farbtons in zwei Teile teilen. Die Legende wird der Übersichtlichkeit halber außerhalb der Figur platziert.
Es ist endlich das Hauptthema. Was hier besorgniserregend ist, ist das Legendenlabel. Wenn Sie Nein oder Ja sagen, wissen Sie nicht, was es ist, wenn Sie es später betrachten. Dies liegt daran, dass der Inhalt no / yes der lebendigen Spalte von df so angegeben wird, wie er auf dem Etikett angegeben ist.
Holen Sie sich daher das Handle von label und geben Sie es direkt an.
python
fig,ax=plt.subplots()
sns.violinplot(data=df, x='pclass', y='age',hue="alive",split=True, ax=ax)
ax.legend(loc='upper left',bbox_to_anchor=(1.05,1))
handler, label = ax.get_legend_handles_labels()
ax.legend(handler, ["dead","alive"],loc='upper left',bbox_to_anchor=(1.05,1))
Sie können sicher feststellen, ob das Etikett tot / lebendig ist und es keinen Unterschied zwischen Leben und Tod gibt, selbst wenn Sie es später betrachten.
Übrigens, als ich herausfand, dass es durch Leben und Tod geteilt war
--Wenn pclass2,3, ist der Prozentsatz der Lebenden in jüngeren Altersgruppen wie Teenagern hoch
Sie können verschiedene Dinge sehen wie.
Natürlich können Sie das gleiche mit Schwarm viel tun.
python
fig,ax=plt.subplots()
sns.swarmplot(data=df, x='pclass', y='age',hue="alive",dodge=True, ax=ax)
ax.legend(loc='upper left',bbox_to_anchor=(1.05,1))
handler, label = ax.get_legend_handles_labels()
ax.legend(handler, ["dead","alive"],loc='upper left',bbox_to_anchor=(1.05,1))
Python: Versuchen Sie die Visualisierung mit dem Seegeborenen https://blog.amedama.jp/entry/seaborn-plot
Recommended Posts