Dieser Artikel wurde von der Huawei Cloud Community geteilt: „ Verwendung von Seaborn zur Implementierung erweiterter statistischer Diagramme von Boxplots bis hin zur Untersuchung multivariabler Beziehungen “, Autor: Lemony Hug.
Im Bereich Datenwissenschaft und Datenvisualisierung ist Seaborn eine beliebte Python-Visualisierungsbibliothek. Es basiert auf Matplotlib und bietet eine einfachere und schönere grafische Oberfläche sowie einige erweiterte statistische Diagrammfunktionen. In diesem Artikel wird erläutert, wie Sie mit Seaborn einige erweiterte statistische Diagramme implementieren und entsprechende Codebeispiele bereitstellen.
Installieren Sie Seaborn
Stellen Sie zunächst sicher, dass Seaborn installiert ist. Sie können es mit pip installieren:
Pip-Installation von Seaborn
Importieren Sie die erforderlichen Bibliotheken
Bevor wir beginnen, müssen wir Seaborn und einige andere häufig verwendete Datenverarbeitungs- und Visualisierungsbibliotheken importieren:
Seaborn als SNS importieren matplotlib.pyplot als plt importieren numpy als np importieren Pandas als PD importieren
Box-Plot
Der Boxplot ist ein häufig verwendetes statistisches Diagramm zur Darstellung der Datenverteilung. Seaborn bietet eine einfache und benutzerfreundliche Oberfläche zum Zeichnen von Boxplots.
# Zufallsdaten generieren np.random.seed(0) data = np.random.normal(loc=0, scale=1, size=100) # Boxplot zeichnen sns.boxplot(data=data) plt.title('Boxplot zufälliger Daten') plt.show()
In diesem Beispiel haben wir einen zufälligen Datensatz generiert und mithilfe der Funktion einen Boxplot gezeichnet. Anhand dieses Diagramms können wir die Verteilung der Daten, einschließlich Median, Quartile und Ausreißer, intuitiv verstehen. sns.boxplot()
Geigenhandlung
Der Violinplot ist ein Diagramm, das Boxplots und Kerndichteschätzungen kombiniert, um die Verteilung von Daten intuitiver darzustellen.
# Zufallsdaten generieren np.random.seed(0) data1 = np.random.normal(loc=0, scale=1, size=100) data2 = np.random.normal(loc=2, scale=1.5, size=100) data = np.concatenate([data1, data2]) labels = ['Gruppe 1'] * 100 + ['Gruppe 2'] * 100 # Zeichne eine Geigenhandlung sns.violinplot(x=labels, y=data) plt.title('Violine Plot of Two Groups') plt.show()
In diesem Beispiel haben wir zwei verschiedene Sätze von Zufallsdaten generiert und mithilfe der Funktion ein Geigendiagramm erstellt. Mithilfe dieses Diagramms können wir die Verteilung der beiden Datensätze vergleichen und die Unterschiede beobachten. sns.violinplot()
Heatmap
Eine Heatmap ist ein Diagramm, das Farben zur Darstellung einer Datenmatrix verwendet und häufig zur Darstellung von Korrelation oder Datendichte verwendet wird.
# Zufallsdaten generieren np.random.seed(0) Daten = np.random.rand(10, 10) # Heatmap zeichnen sns.heatmap(data, annot=True, cmap='green') plt.title('Heatmap zufälliger Daten') plt.show()
In diesem Beispiel haben wir eine zufällige 10x10-Matrix generiert und die Funktion zum Zeichnen einer Heatmap verwendet. Durch dieses Diagramm können wir die Korrelation zwischen Daten und der Datenverteilung intuitiv verstehen. sns.heatmap()
Diagramm zur Schätzung der Kerndichte
Das Diagramm zur Schätzung der Kerndichte ist eine nichtparametrische Methode zur Schätzung der Datendichtefunktion durch Glätten der beobachteten Daten, um eine kontinuierliche Wahrscheinlichkeitsdichtekurve zu erzeugen.
# Zufallsdaten generieren np.random.seed(0) data = np.random.normal(loc=0, scale=1, size=100) # Zeichnen Sie eine Karte zur Schätzung der Kerndichte sns.kdeplot(data, Shade=True) plt.title('Kerndichteschätzungsdiagramm von Zufallsdaten') plt.show()
In diesem Beispiel haben wir einen Satz Zufallsdaten generiert und die Schätzung der Kerndichte mithilfe der Funktion grafisch dargestellt. Dieses Diagramm zeigt die Wahrscheinlichkeitsdichteverteilung der Daten und hilft uns, die Verteilungseigenschaften der Daten besser zu verstehen. sns.kdeplot()
Paarplot
Ein paarweises Beziehungsdiagramm ist eine Art Diagramm, das zur Visualisierung von Beziehungen zwischen Variablen in einem Datensatz verwendet wird und für die explorative Datenanalyse nützlich ist.
# Zufallsdatensatz generieren np.random.seed(0) data = pd.DataFrame(np.random.randn(100, 4), columns=['A', 'B', 'C', 'D']) # Zeichnen Sie ein paarweises Beziehungsdiagramm sns.pairplot(data) plt.suptitle('Paarplot zufälliger Daten', y=1,02) plt.show()
In diesem Beispiel haben wir einen Zufallsdatensatz generiert und die Funktion verwendet, um die paarweise Beziehung darzustellen. Dieses Diagramm zeigt die Beziehung zwischen jeweils zwei Variablen im Datensatz, einschließlich Streudiagrammen und univariaten Verteilungsdiagrammen, und hilft dabei, Muster und Korrelationen zwischen Variablen zu entdecken. sns.pairplot()
Clusterkarte
Ein Clusterdiagramm ist ein Diagramm, das zur Darstellung der Ähnlichkeiten zwischen Variablen in einem Datensatz verwendet wird. Ähnliche Variablen werden durch einen Clustering-Algorithmus in Gruppen angezeigt.
# Zufallsdatensatz generieren np.random.seed(0) data = pd.DataFrame(np.random.rand(10, 10), columns=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H ', 'I', 'J']) # Clusterdiagramm zeichnen sns.clustermap(data, cmap='viridis') plt.title('Cluster-Map zufälliger Daten') plt.show()
In diesem Beispiel haben wir einen Zufallsdatensatz generiert und die Cluster mithilfe der Funktion grafisch dargestellt. Dieses Diagramm zeigt die Ähnlichkeiten zwischen Variablen im Datensatz und zeigt ähnliche Variablen in Gruppen durch einen Clustering-Algorithmus an, was dabei hilft, Muster und Strukturen zwischen Variablen zu entdecken. sns.clustermap()
Clustermap
Bei der Clustering-Heatmap handelt es sich um eine Heatmap, die auf einem hierarchischen Clustering-Algorithmus basiert, der Daten gruppiert und entsprechend den Clustering-Ergebnissen neu anordnet, um die Struktur und Korrelation der Daten besser anzuzeigen.
# Zufallsdaten generieren np.random.seed(0) Daten = np.random.rand(10, 10) # Clustering-Heatmap zeichnen sns.clustermap(data, cmap='coolwarm') plt.title('Clustermap von Zufallsdaten') plt.show()
In diesem Beispiel haben wir eine zufällige 10x10-Matrix generiert und mithilfe der Funktion eine Cluster-Heatmap gezeichnet. Anhand dieses Diagramms können wir die Clusterbeziehungen zwischen Daten und die Ähnlichkeiten zwischen verschiedenen Datenpunkten deutlich erkennen. sns.clustermap()
Klassifizierungsstreudiagramm (Paardiagramm)
Ein kategoriales Streudiagramm ist ein Diagramm, das die Beziehung zwischen mehreren Variablen gleichzeitig anzeigt. Es wird häufig verwendet, um die Korrelation zwischen verschiedenen Variablen in einem Datensatz zu untersuchen.
#Beispieldatensatz laden iris = sns.load_dataset('iris') # Zeichnen Sie ein Klassifizierungsstreudiagramm sns.pairplot(iris, hue='species', markers=['o', 's', 'D']) plt.title('Pairplot des Iris-Datensatzes') plt.show()
In diesem Beispiel verwenden wir den mit Seaborn gelieferten Irisdatensatz und verwenden die Funktion, um ein Klassifizierungsstreudiagramm zu zeichnen. Mit dieser Tabelle können wir auf einen Blick die Unterschiede in den Merkmalen verschiedener Irisarten sowie die Korrelationen zwischen verschiedenen Merkmalen erkennen. sns.pairplot()
Zeitreihendiagramm
Ein Zeitreihendiagramm ist ein Diagramm zur Anzeige von Zeitreihendaten und wird häufig zur Analyse von Trends und Periodizität von Daten im Zeitverlauf verwendet.
# Zeitreihendaten generieren date = pd.date_range(start='2022-01-01', end='2022-12-31') data = np.random.randn(len(dates)) # DataFrame erstellen df = pd.DataFrame({'Date': Datumsangaben, 'Value': Daten}) # Zeitreihendiagramm zeichnen sns.lineplot(x='Datum', y='Wert', Daten=df) plt.title('Zeitreihendiagramm zufälliger Daten') plt.xlabel('Date') plt.ylabel('Wert') plt.show()
In diesem Beispiel haben wir zufällige Zeitreihendaten generiert und die Zeitreihe mithilfe der Funktion grafisch dargestellt. Anhand dieses Diagramms können wir die Trends und die Periodizität der Daten im Zeitverlauf deutlich erkennen. sns.lineplot()
Erweiterte Farbpaletten
Seaborn bietet eine umfangreiche Palettenfunktion, die Benutzern bei der Auswahl geeigneter Farbschemata in Diagrammen helfen kann, um wichtige Punkte hervorzuheben oder Visualisierungseffekte zu verbessern.
# Erweiterte Palette verwenden current_palette = sns.color_palette('husl', 5) # Zeichnen Sie ein Histogramm sns.barplot(x=np.arange(5), y=np.random.rand(5), palette=current_palette) plt.title('Balkendiagramm mit erweiterter Farbpalette') plt.show()
In diesem Beispiel haben wir eine Funktion zur Auswahl einer Husl-Palette verwendet und eine Palette mit 5 Farben generiert. Anschließend haben wir mit dieser Palette ein Histogramm gezeichnet, um den Effekt zu demonstrieren. sns.color_palette()
Angepasste Handlungsstile
Mit Seaborn können Benutzer das Erscheinungsbild von Karten anpassen, indem sie verschiedene Stile festlegen, um individuelle Anforderungen zu erfüllen.
# Benutzerdefinierten Stil festlegen sns.set_style('whitegrid') # Zeichnen Sie ein Streudiagramm sns.scatterplot(x=np.random.randn(100), y=np.random.randn(100)) plt.title('Streudiagramm mit benutzerdefiniertem Stil') plt.show()
In diesem Beispiel verwenden wir eine Funktion, um den Diagrammstil auf ein weißes Raster festzulegen und ein Streudiagramm zu zeichnen, um dessen Wirkung zu demonstrieren. sns.set_style()
Mehrteilige Zeichnung (Facettengitter)
Seaborn bietet die Funktion des Multi-Panel-Plottings, mit dem mehrere Unterplots gleichzeitig angezeigt werden können, um die Beziehung zwischen verschiedenen Teilmengen besser vergleichen zu können.
#Beispieldatensatz laden Tips = sns.load_dataset('tips') #FacetGrid-Objekt erstellen g = sns.FacetGrid(tips, col='time', row='smoker') # Zeichne eine Geigenhandlung g.map(sns.violinplot, 'total_bill') plt.show()
In diesem Beispiel verwenden wir Funktionen, um ein FacetGrid-Objekt zu erstellen und Geigendiagramme in verschiedenen Teilgraphen zu zeichnen, um die Verteilung von Daten zwischen verschiedenen Teilmengen anzuzeigen. sns.FacetGrid()
Datenverteilungsvergleich (Verteilungsvergleich)
Seaborn bietet mehrere Möglichkeiten, Unterschiede zwischen verschiedenen Datenverteilungen zu vergleichen, beispielsweise mithilfe der Kerndichteschätzung oder Histogrammen.
#Beispieldatensatz laden iris = sns.load_dataset('iris') # Zeichnen Sie eine Karte zur Schätzung der Kerndichte sns.kdeplot(data=iris, x='sepal_length', hue='species', fill=True) plt.title('Verteilungsvergleich der Kelchblattlänge') plt.show()
In diesem Beispiel verwenden wir die Funktion, um Schätzungen der Kerndichte der Kelchblattlängen zwischen Arten im Iris-Datensatz darzustellen und deren Verteilungen zu vergleichen. sns.kdeplot()
Gruppierte Visualisierung
Seaborn kann die Gruppierung von Daten problemlos anzeigen, beispielsweise durch die Verwendung kategorialer Variablen zum Gruppieren und Visualisieren von Daten.
#Beispieldatensatz laden titanic = sns.load_dataset('titanic') # Zeichnen Sie Klassifizierungs-Boxplots sns.boxplot(data=titanic, x='class', y='age', hue='sex') plt.title('Gruppiertes Boxplot des Alters nach Klasse und Geschlecht') plt.show()
In diesem Beispiel verwenden wir Funktionen, um die Auswirkungen des Alters auf verschiedene Kabinenklassen und Geschlechter im Titanic-Datensatz darzustellen und deren Verteilungen zu vergleichen. sns.boxplot()
Erforschung multivariater Beziehungen
Seaborn bietet verschiedene Möglichkeiten, Beziehungen zwischen mehreren Variablen zu untersuchen, beispielsweise die Verwendung von Streudiagrammmatrizen oder paarweisen Beziehungsdiagrammen.
#Beispieldatensatz laden iris = sns.load_dataset('iris') # Zeichnen Sie eine Streudiagrammmatrix sns.pairplot(data=iris, hue='species') plt.title('Pairplot zur Erforschung multivariater Beziehungen') plt.show()
In diesem Beispiel verwenden wir Funktionen, um paarweise Beziehungen zwischen verschiedenen Features im Iris-Datensatz darzustellen und die multivariaten Beziehungen zwischen ihnen zu untersuchen. sns.pairplot()
Zusammenfassen
In diesem Artikel wird erläutert, wie Sie mit Seaborn erweiterte statistische Diagramme implementieren, und es werden ausführliche Codebeispiele bereitgestellt. Zunächst haben wir gelernt, wie man gängige statistische Diagramme zeichnet, darunter Boxplots, Violinplots, Heatmaps usw., mit denen die Verteilung und Korrelation von Daten visuell dargestellt werden kann. Als Nächstes haben wir erweiterte Funktionen wie Farbpaletten, benutzerdefinierte Diagrammstile, Zeichnungen mit mehreren Feldern usw. untersucht, mit denen Benutzer das Erscheinungsbild von Diagrammen anpassen und Visualisierungseffekte verbessern können. Anschließend stellten wir einige erweiterte Anwendungen vor, z. B. den Vergleich der Datenverteilung, die Anzeige von Datengruppen, die Untersuchung von Beziehungen mit mehreren Variablen usw. Diese Methoden können Benutzern dabei helfen, ein tieferes Verständnis der Beziehungen und Muster zwischen Daten zu erlangen. Durch das Studium dieses Artikels können Leser die grundlegenden Fähigkeiten der Verwendung von Seaborn zur Datenvisualisierung erlernen und seine umfangreichen Funktionen und flexiblen Schnittstellen für die Datenanalyse und -exploration nutzen. Die leistungsstarken Funktionen und die einfache Benutzeroberfläche von Seaborn machen es zu einem unverzichtbaren Werkzeug für Datenwissenschaftler und -analysten.
Die Raubkopien von „Celebrating More Than Years 2“ wurden auf npm hochgeladen, was dazu führte, dass npmmirror den Unpkg-Dienst einstellen musste und sich gemeinsam mit Hunderten von Menschen in die USA begab Front-End-Visualisierungsbibliothek und Baidus bekanntes Open-Source-Projekt ECharts – „Going to the Sea“ zur Unterstützung Fischbetrüger nutzten TeamViewer, um 3,98 Millionen zu überweisen! Was sollten Remote-Desktop-Anbieter tun? Zhou Hongyi: Für Google bleibt nicht mehr viel Zeit. Es wird empfohlen, dass alle Produkte Open Source sind. Ein ehemaliger Mitarbeiter eines bekannten Open-Source-Unternehmens brachte die Nachricht: Nachdem er von seinen Untergebenen herausgefordert wurde, wurde der technische Leiter wütend hat die schwangere Mitarbeiterin entlassen. Google hat gezeigt, wie man ChromeOS in einer virtuellen Android-Maschine ausführt. Bitte geben Sie mir einen Rat, welche Rolle time.sleep(6) hier spielt. Microsoft reagiert auf Gerüchte, dass Chinas KI-Team „für die USA packt“. People's Daily Online kommentiert die matroschkaartige Aufladung von Bürosoftware: Nur durch das aktive Lösen von „Sets“ können wir eine Zukunft haben