So verwenden Sie Seaborn zur Implementierung erweiterter statistischer Diagramme

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.

Klicken Sie hier, um zu folgen und so schnell wie möglich mehr über die neuen Technologien von Huawei Cloud zu erfahren~

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
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/4526289/blog/11179361
Empfohlen
Rangfolge