[Python in 100 Tagen beherrschen] Tag 61: Python-Datenanalyse_Pandas-Visualisierungsfunktionen: Zeichnen von Kreisdiagrammen, Boxplots, Streudiagrammen, Streudiagrammmatrizen, Wärmekarten, Flächendiagrammen usw. (Beispiele + Code)

Inhaltsverzeichnis

1 Pandas-Visualisierungsfunktion

2 Pandas-Zeichnungsbeispiele

2.1 Liniendiagramme zeichnen

2.2 Histogramm zeichnen

2.3 Zeichnen Sie ein zufälliges Streudiagramm

2.4 Zeichnen eines Kreisdiagramms

2.5 Zeichnen Sie Boxplot A

2.6 Zeichnen Sie Boxplot B

2.7 Zeichnen Sie eine Streudiagrammmatrix

 2.8 Flächendiagramm zeichnen

2.9 Heatmap zeichnen

 2.10 Zeichnen Sie ein Diagramm zur Schätzung der Kerndichte


1 Pandas-Visualisierungsfunktion

Pandas ist eine leistungsstarke Datenanalysebibliothek, die einige Visualisierungstools bereitstellt, mit denen Benutzer Daten besser verstehen und anzeigen können. Hier sind einige gemeinsame Funktionen von Pandas-Visualisierungstools:

1. Liniendiagramm: Die Funktion plot() kann zum Zeichnen eines Liniendiagramms verwendet werden, um den sich ändernden Trend von Daten über die Zeit oder andere Variablen anzuzeigen.

2. Streudiagramm: Verwenden Sie die Funktion Scatter(), um ein Streudiagramm zu zeichnen, um die Beziehung zwischen zwei Variablen auf einer zweidimensionalen Ebene anzuzeigen.

3. Balkendiagramm: Verwenden Sie die Funktion bar(), um ein Balkendiagramm zu zeichnen, um die numerischen Werte verschiedener Kategorien oder Gruppen zu vergleichen.

4. Histogramm: Verwenden Sie die Funktion hist(), um ein Histogramm zu zeichnen, das zur Anzeige der Verteilung numerischer Daten verwendet wird.

5. Kreisdiagramm: Verwenden Sie die Funktion pie(), um ein Kreisdiagramm zu zeichnen, um die Anteile verschiedener Kategorien anzuzeigen.

6. Boxplot: Verwenden Sie die Funktion boxplot(), um ein Boxplot zu zeichnen, um die Verteilungsmerkmale, Ausreißer usw. numerischer Daten anzuzeigen.

Pandas ist eine beliebte Bibliothek zur Datenverarbeitung und -analyse. Sie bietet einige integrierte Visualisierungsfunktionen, die normalerweise auf der zugrunde liegenden Bibliothek Matplotlib basieren.

  • Zeichnen Sie ein Liniendiagramm:

df['column_name'].plot(kind='line')

Zeichnen Sie ein Histogramm:

df['column_name'].plot(kind='bar')

Zeichnen Sie ein Streudiagramm:

df.plot(x='x_column', y='y_column', kind='scatter')

hist()-Funktion : hist()Die Funktion wird verwendet, um ein Histogramm zu zeichnen, um die Verteilung und Häufigkeit von Daten anzuzeigen.

df['column_name'].hist(bins=10)

boxplot()-Funktion : boxplot()Die Funktion wird verwendet, um Boxplots zu zeichnen und Quantile und Ausreißer der Daten anzuzeigen.

df.boxplot(column='column_name')

Funktion „scatter_matrix()“ : scatter_matrix()Die Funktion wird verwendet, um eine Streudiagrammmatrix zwischen mehreren Variablen zu zeichnen, die dabei hilft, die Beziehung zwischen Variablen zu verstehen.

from pandas.plotting import scatter_matrix

scatter_matrix(df, alpha=0.5, figsize=(8, 8), diagonal='hist')

plotting.scatter_matrix()-Funktion : Dies ist eine erweiterte Funktion zum Zeichnen einer Streudiagrammmatrix, mit der die Eigenschaften jedes Unterdiagramms angepasst werden können.

from pandas.plotting import scatter_matrix

scatter_matrix(df, alpha=0.5, figsize=(8, 8), diagonal='kde', color='red')

Funktion plot.barh() : plot.barh()Die Funktion wird zum Zeichnen eines horizontalen Balkendiagramms verwendet.

df['column_name'].plot(kind='barh')

plot.pie()-Funktion : plot.pie()Die Funktion wird verwendet, um Kreisdiagramme zu zeichnen und den Anteil der Daten anzuzeigen.

df['column_name'].plot(kind='pie', autopct='%1.1f%%')

Funktion plot.area() : plot.area()Die Funktion wird verwendet, um ein gestapeltes Flächendiagramm zu zeichnen, um den kumulativen Änderungstrend der Daten anzuzeigen.

df.plot.area()

plot.kde()-Funktion : plot.kde()Die Funktion wird verwendet, um Kerndichteschätzungsdiagramme zu zeichnen und die Wahrscheinlichkeitsdichteverteilung von Daten anzuzeigen.


2 Pandas-Zeichnungsbeispiele

2.1 Liniendiagramme zeichnen

import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
# 创建数据
data = {'年份': [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017],
        '销售额': [100, 150, 120, 180, 200, 250, 300, 280]}

# 转换为DataFrame格式
df = pd.DataFrame(data)

# 绘制折线图
plt.plot(df['年份'], df['销售额'], marker='o')

# 设置x轴和y轴标签、标题
plt.xlabel('年份')
plt.ylabel('销售额')
plt.title('销售额变化趋势')

# 添加图例
plt.legend(['销售额'])

# 显示图形
plt.show()

Wenn Sie Pandas zum Zeichnen von Balken-, Streu- und Kreisdiagrammen verwenden, können Sie plot()verschiedene kindParameter der Funktion verwenden, um den Typ des zu zeichnenden Diagramms anzugeben.

2.2 Histogramm zeichnen

import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 替换为您系统中支持的字体
# 创建一个示例DataFrame
data = {'Category': ['A', 'B', 'C', 'D'],
        'Values': [10, 15, 7, 12]}

df = pd.DataFrame(data)

# 绘制柱状图
df.plot(x='Category', y='Values', kind='bar', title='柱状图')
plt.xlabel('类别')
plt.ylabel('数值')
plt.show()

2.3 Zeichnen Sie ein zufälliges Streudiagramm

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 替换为您系统中支持的字体
# 生成随机数据
np.random.seed(0)  # 设置随机种子以确保可重复性
num_points = 100
x = np.random.rand(num_points)  # 随机生成x坐标
y = np.random.rand(num_points)  # 随机生成y坐标
colors = np.random.rand(num_points)  # 随机生成颜色值

# 创建DataFrame
data = {'X': x, 'Y': y, 'Color': colors}
df = pd.DataFrame(data)

# 绘制散点图
plt.figure(figsize=(8, 6))  # 设置图形大小
plt.scatter(x='X', y='Y', c='Color', data=df, cmap='viridis', alpha=0.7)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('随机散点图')
plt.colorbar(label='颜色')
plt.show()

Im obigen Beispiel haben wir zunächst NumPy verwendet, um einige zufällige x- und y-Koordinatendaten sowie zufällige Farbwerte zu generieren. Anschließend haben wir diese Daten in einen Pandas DataFrame eingefügt und mit Matplotlib ein Streudiagramm erstellt. Die Farbe verwendet eine Farbzuordnung (cmap) und fügt einen Farbbalken (Colorbar) hinzu, um die entsprechende Beziehung der Farbzuordnung anzuzeigen.

2.4 Zeichnen eines Kreisdiagramms

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 替换为您系统中支持的字体


# 创建一个示例DataFrame,包含不同类别的值
data = {'Category': ['A', 'B', 'C', 'D'],
        'Values': [10, 15, 7, 12]}

df = pd.DataFrame(data)

# 指定用于饼图的数值列和标签列
values = df['Values']
labels = df['Category']

# 绘制饼图
plt.figure(figsize=(6, 6))  # 设置图形大小
df.plot(y='Values', kind='pie', labels=df['Category'], autopct='%1.1f%%', title='饼图')  # 绘制饼图
plt.title('饼图')  # 设置图表标题

# 显示图表
plt.axis('equal')  # 使饼图保持圆形
plt.show()

Im obigen Beispiel wird zunächst ein DataFrame erstellt, der Kategorien und entsprechende Werte enthält. Verwenden Sie dann plt.pie()eine Funktion, um ein Kreisdiagramm zu zeichnen, das valuesnumerische Daten und labelsBeschriftungen für das Kreisdiagramm enthält. autopctDer Parameter wird verwendet, um die Prozentbeschriftung anzuzeigen, und startangleder Parameter wird verwendet, um den Startwinkel des Kreisdiagramms anzugeben. Verwenden Sie abschließend plt.axis('equal')„Stellen Sie sicher, dass das Kreisdiagramm rund bleibt“.

2.5 Zeichnen Sie Boxplot A

import pandas as pd
import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif'] = ['SimHei']


# 创建示例数据集
data = {
    'Product_A': [random.randint(50, 100) for _ in range(50)],
    'Product_B': [random.randint(40, 90) for _ in range(50)],
    'Product_C': [random.randint(60, 110) for _ in range(50)],
    'Product_D': [random.randint(30, 70) for _ in range(50)],
    'Product_E': [random.randint(20, 80) for _ in range(50)],
    'Product_F': [random.randint(70, 120) for _ in range(50)]
}

df = pd.DataFrame(data)

# 使用boxplot()函数绘制箱线图
df.boxplot(column=['Product_A', 'Product_B', 'Product_C', 'Product_D', 'Product_E', 'Product_F'])

# 添加标题和标签
plt.title('不同产品销售数据箱线图')
plt.ylabel('销售数量')

# 显示图形
plt.show()

         In diesem Beispiel erstellen wir einen Beispiel-DataFrame mit 6 Produkten dfmit jeweils 50 Verkaufsdatenpunkten. Anschließend haben wir boxplot()die Funktion verwendet, um Boxplots dieser 6 Produkte zu zeichnen.

        Das Boxplot zeigt die Verteilung der Verkaufsmengen jedes Produkts, einschließlich Informationen wie Median, Quartile, Ausreißer usw. Durch den Vergleich von Boxplots verschiedener Produkte können Sie die Verteilung ihrer Verkaufsdaten für die weitere Analyse und Entscheidungsfindung besser verstehen. Diese Visualisierungsmethode kann Ihnen bei der Analyse potenzieller Verkaufstrends und -anomalien helfen.

2.6 Zeichnen Sie Boxplot B

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #替换为系统中支持的字体


# 创建一个示例数据集,包括三个组的数据
data = pd.DataFrame({
    'Group1': np.random.normal(0, 1, 100),
    'Group2': np.random.normal(2, 1, 100),
    'Group3': np.random.normal(1, 1, 100),
    'Group4': np.random.normal(3, 1, 100)
})

# 使用boxplot()函数绘制箱线图,指定显示的列和参数
data.boxplot(column=['Group1', 'Group2', 'Group3', 'Group4'],
             notch=True,  # 添加缺口以估计中位数的不确定性
             sym='o',  # 设置异常值标记为圆圈
             vert=False,  # 水平显示箱线图
             patch_artist=True,  # 填充箱体颜色
             showmeans=True,  # 显示均值点
             meanline=True,  # 显示均值线
             widths=0.5  # 箱体宽度
             )

# 添加标题和标签
plt.title('箱线图示例')
plt.xlabel('值')
plt.ylabel('分组')

# 显示图形
plt.show()

In diesem Beispiel erstellen wir einen Beispiel-DataFrame mit vier Gruppen datazu je 100 Zufallszahlen. Dann verwenden wir boxplot()die Funktion , um den Boxplot zu zeichnen und mehrere Parameter anzupassen:

  • notch=True: Fügt den Klassen Kerben hinzu, um die Unsicherheit im Median abzuschätzen.
  • sym='o': Ausreißer als Kreise markieren.
  • vert=False: Boxplot horizontal anzeigen.
  • patch_artist=True: Farbe des Füllfelds.
  • showmeans=True: Zeigt den Mittelwert an.
  • meanline=True: Zeigt die Mittellinie an.
  • widths=0.5:Stellen Sie die Schrankbreite ein.

Jedes Feld stellt die Datenverteilung einer Gruppe dar. Das Boxplot zeigt auch den Median, die Mittelwerte und die Ausreißer. Dieses Visualisierungstool hilft dabei, Datenverteilungen über mehrere Gruppen hinweg zu vergleichen und Ausreißer zu erkennen.

2.7 Zeichnen Sie eine Streudiagrammmatrix

pandas.plotting.scatter_matrix()Die Funktion wird zum Zeichnen einer Streudiagrammmatrix zwischen mehreren Variablen verwendet, um Ihnen das Verständnis der Beziehung zwischen den einzelnen Variablen zu erleichtern. Mit dieser Funktion können Sie die Eigenschaften jedes Unterplots anpassen, einschließlich Farbe, Markierungen, Histogramm, Schätzung der Kerneldichte usw. Hier ist ein detailliertes Beispiel:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
plt.rcParams['font.sans-serif'] = ['SimHei']
# 创建一个包含多个变量的示例数据集
data = pd.DataFrame(np.random.randn(100, 4), columns=['A', 'B', 'C', 'D'])

# 使用scatter_matrix()函数绘制散点图矩阵
# 主要参数包括DataFrame对象,alpha(透明度),diagonal(对角线上的图表类型),color(颜色),marker(标记类型)等
scatter_matrix(data, alpha=0.8, figsize=(8, 8), diagonal='hist', color='blue', marker='o')

# 添加标题
plt.suptitle('散点图矩阵示例')

# 显示图形
plt.show()

In diesem Beispiel erstellen wir zunächst einen Beispiel-DataFrame mit vier Zufallsvariablen data. Dann verwenden wir scatter_matrix()eine Funktion , um eine Streudiagrammmatrix zu zeichnen und geben dabei einige Parameter an:

  • alphaDer Parameter legt die Transparenz fest, sodass überlappende Punkte sichtbar sind.
  • figsizeDer Parameter legt die Größe des Diagramms fest.
  • diagonalDer Parameter legt den Diagrammtyp auf der Diagonale fest, hier wird ein Histogramm verwendet.
  • colorDer Parameter legt die Farbe der Streupunkte fest.
  • markerDer Parameter legt den Markierungstyp der Streupunkte fest.

Schließlich haben wir den Titel hinzugefügt und die Grafik angezeigt.

 2.8 Flächendiagramm zeichnen

Flächengrundstück

Flächendiagramme werden zur Visualisierung von Trends in Zeitreihen oder geordneten Daten verwendet. Sie werden häufig verwendet, um kumulative Änderungen in Daten anzuzeigen.

import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']


# 创建示例数据集
data = {
    'Year': [2000, 2001, 2002, 2003, 2004],
    'Product_A': [100, 120, 140, 160, 180],
    'Product_B': [80, 90, 110, 130, 150]
}

df = pd.DataFrame(data)

# 使用plot()函数创建面积图
plt.figure(figsize=(8, 6))
plt.stackplot(df['Year'], df['Product_A'], df['Product_B'], labels=['Product_A', 'Product_B'], alpha=0.7)
plt.xlabel('年份')
plt.ylabel('销售数量')
plt.title('面积图示例')
plt.legend(loc='upper left')
plt.show()

         Im obigen Beispiel haben wir zunächst einen Beispiel-DataFrame erstellt, der das Jahr und die Verkaufsmenge zweier Produkte enthält. Verwenden Sie dann stackplot()eine Funktion , um das Flächendiagramm zu erstellen, alphamit Parametern, die die Transparenz festlegen, labelsParametern, die die Legendenbeschriftung festlegen, und legend()der Funktion, die zum Anzeigen der Legende verwendet wird. 

2.9 Heatmap zeichnen

Heatmap

Heatmaps werden verwendet, um die Beziehung zwischen verschiedenen Elementen in Matrixdaten zu visualisieren, wobei normalerweise Farben verwendet werden, um die Größe des Werts darzustellen.

Um Heatmaps in Pandas zu zeichnen, müssen Sie normalerweise Hilfsbibliotheken verwenden, am häufigsten sind Seaborn und Matplotlib. Seaborn bietet erweiterte Funktionen zum Zeichnen von Wärmekarten und Matplotlib wird zum Anzeigen von Grafiken verwendet. Hier ist ein Beispiel für das Zeichnen einer Heatmap in Pandas mit Seaborn und Matplotlib:

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

plt.rcParams['font.sans-serif'] = ['SimHei'] #替换为系统中支持的字体

# 创建示例数据集
data = np.random.rand(5, 5)  # 5x5的随机矩阵

# 转换为DataFrame
df = pd.DataFrame(data, columns=['A', 'B', 'C', 'D', 'E'])

# 使用seaborn的heatmap()函数创建热力图
plt.figure(figsize=(8, 6))
sns.heatmap(df, annot=True, cmap='coolwarm', linewidths=.5)
plt.title('热力图示例')
plt.show()

 Im obigen Beispiel haben wir zunächst eine Zufallsmatrix erstellt und diese in einen Pandas DataFrame umgewandelt. Verwenden Sie dann heatmap()die Funktion von Seaborn, um die Wärmekarte zu zeichnen. Parameter annot=Truewerden verwendet, um numerische Beschriftungen im Diagramm anzuzeigen, cmapdie Farbkarte festzulegen und linewidthsdie Breite der Intervalllinie zwischen Zellen festzulegen.


 2.10 Zeichnen Sie ein Diagramm zur Schätzung der Kerndichte

 plot.kde()-Funktion : plot.kde()Die Funktion wird verwendet, um Kerndichteschätzungsdiagramme zu zeichnen und die Wahrscheinlichkeitsdichteverteilung von Daten anzuzeigen.

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] #替换为系统中支持的字体

# 创建示例数据集
data = {'Values': [10, 15, 13, 18, 25, 12, 22, 27, 16, 21]}

df = pd.DataFrame(data)

# 使用plot.kde()函数创建核密度估计图
df['Values'].plot.kde()
plt.xlabel('数值')
plt.ylabel('概率密度')
plt.title('核密度估计图示例')
plt.show()

In diesem Beispiel erstellen wir zunächst einen DataFrame mit den Beispieldaten dfund verwenden dann plot.kde()die Funktion, um die Schätzung der Kerneldichte darzustellen. Dieses Diagramm zeigt die Wahrscheinlichkeitsdichteverteilung der Daten. Dabei handelt es sich um eine glatte Kurve, die die Wahrscheinlichkeitsdichte der Daten bei verschiedenen Werten darstellt.

Ich denke du magst

Origin blog.csdn.net/qq_35831906/article/details/132847437
Empfohlen
Rangfolge