用Python中的Pandas绘制密度图

用Python中的Pandas绘制密度图

密度图是一种数据可视化工具。它是直方图的一种变体,在绘制数值时使用 “核平滑”。它是一个从数据中推断出的连续和平滑的直方图版本。

密度图使用内核密度估计法(所以它们也被称为内核密度估计图或KDE),这是一个概率密度函数。具有较高峰值的绘图区域是具有最大数据点的区域,这些数值之间居住着最大的数据点。

密度图可以用pandas、seaborn等制作。在这篇文章中,我们将使用Pandas生成密度图。我们将使用Seaborn库的两个数据集,即’car_crashes’和’tips’。

语法:pandas.DataFrame.plot.density | pandas.DataFrame.plot.kde

其中pandas ->类型为’pandas dataframe’的数据集

Dataframe – 要绘制密度图的列

density – 用于绘制密度图

kde – 使用内核密度估计功能绘制密度图。

例子1:给定数据集’car_crashes’,让我们用密度图找出大部分车祸发生的最常见速度。

# importing the libraries
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading the dataset
# from seaborn library
data = sns.load_dataset('car_crashes')
  
# viewing the dataset
print(data.head(4))

输出:

用Python中的Pandas绘制密度图

绘制图表:

# plotting the density plot 
# for 'speeding' attribute
# using plot.density()
data.speeding.plot.density(color='green')
plt.title('Density plot for Speeding')
plt.show()

输出:

用Python中的Pandas绘制密度图

使用密度图,我们可以算出,在数据集中,速度在4-5(公里/小时)之间的车祸最常见,因为它是高密度(高峰值)区域。

例子2:对于另一个数据集 “小费”,让我们计算一下顾客最常给的小费是什么。

# loading the dataset
# from seaborn library
data = sns.load_dataset('tips')
  
# viewing the dataset
print(data.head(4))

输出:

用Python中的Pandas绘制密度图

绘制图表:

# density plot for 'tip'
data.tip.plot.density(color='green')
plt.title('Density Plot for Tip')
plt.show()

用Python中的Pandas绘制密度图

通过上述密度图,我们可以推断,最常见的提示是在2.5-3的范围内。最高的峰值/密度(在Y轴上表示)被发现是在2.5-3的尖端值。

使用plot.kde()绘制上述绘图

KDE或内核密度估计法使用高斯内核来估计随机变量的概率密度函数。下面是使用kde()为数据集 “tips “绘制密度图的实现。

# for 'tip' attribute
# using plot.kde()
data.tip.plot.kde(color='green')
plt.title('KDE-Density plot for Tip')
plt.show()

用Python中的Pandas绘制密度图

利用这一点我们可以推断,plot.density()和plot.kde()之间没有大的区别,因此可以互换使用。

密度图比直方图有优势,因为它们比直方图更有效地确定分布的形状。与直方图不同的是,它们不必依赖于所使用的分仓数量。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程