📜  使用 Pandas 和 Seaborn 进行 KDE 绘图可视化

📅  最后修改于: 2022-05-13 01:54:18.840000             🧑  作者: Mango

使用 Pandas 和 Seaborn 进行 KDE 绘图可视化

KDE Plot 描述为Kernel Density Estimate ,用于可视化连续变量的概率密度。它描述了连续变量中不同值的概率密度。我们还可以为多个样本绘制一个图表,这有助于更有效地数据可视化。

在本文中,我们将使用 Iris Dataset 和 KDE Plot 来可视化数据集的洞察力。

关于 Iris 数据集

  1. 属性:Petal_Length (cm), Petal_Width (cm), Sepal_Length (cm), Sepal_Width(cm)
  2. 目标:Iris_Virginica、Iris_Setosa、Iris_Vercicolor
  3. 实例数:150

一维 KDE 图:

我们可以可视化样本针对单个连续属性的概率分布。

# importing the required libraries
from sklearn import datasets
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
  
# Setting up the Data Frame
iris = datasets.load_iris()
  
iris_df = pd.DataFrame(iris.data, columns=['Sepal_Length',
                      'Sepal_Width', 'Patal_Length', 'Petal_Width'])
  
iris_df['Target'] = iris.target
  
iris_df['Target'].replace([0], 'Iris_Setosa', inplace=True)
iris_df['Target'].replace([1], 'Iris_Vercicolor', inplace=True)
iris_df['Target'].replace([2], 'Iris_Virginica', inplace=True)
  
# Plotting the KDE Plot
sns.kdeplot(iris_df.loc[(iris_df['Target']=='Iris_Virginica'),
            'Sepal_Length'], color='b', shade=True, Label='Iris_Virginica')
  
# Setting the X and Y Label
plt.xlabel('Sepal Length')
plt.ylabel('Probability Density')

输出:

我们还可以在单个图中可视化多个样本的概率分布。

# Plotting the KDE Plot
sns.kdeplot(iris_df.loc[(iris_df['Target']=='Iris_Setosa'),
            'Sepal_Length'], color='r', shade=True, Label='Iris_Setosa')
  
sns.kdeplot(iris_df.loc[(iris_df['Target']=='Iris_Virginica'), 
            'Sepal_Length'], color='b', shade=True, Label='Iris_Virginica')
  
plt.xlabel('Sepal Length')
plt.ylabel('Probability Density')

输出:
二维 KDE 图:

我们可以可视化样本针对多个连续属性的概率分布。

# Setting up the samples
iris_setosa = iris_df.query("Target=='Iris_Setosa'")
iris_virginica = iris_df.query("Target=='Iris_Virginica'")
  
# Plotting the KDE Plot
sns.kdeplot(iris_setosa['Sepal_Length'], 
            iris_setosa['Sepal_Width'],
            color='r', shade=True, Label='Iris_Setosa',
            cmap="Reds", shade_lowest=False)

输出:

我们还可以在单个图中可视化多个样本的概率分布。

# Plotting the KDE Plot
sns.kdeplot(iris_setosa['Sepal_Length'],
            iris_setosa['Sepal_Width'],
            color='r', shade=True, Label='Iris_Setosa',
            cmap="Reds", shade_lowest=False)
  
sns.kdeplot(iris_virginica['Sepal_Length'], 
            iris_virginica['Sepal_Width'], color='b',
            shade=True, Label='Iris_Virginica',
            cmap="Blues", shade_lowest=False)

输出: