📜  Python的直方图和密度图(1)

📅  最后修改于: 2023-12-03 15:04:40.508000             🧑  作者: Mango

Python的直方图和密度图

Python是用于数据科学和数据可视化的一种非常受欢迎的编程语言。它有着非常强大的绘图功能,其中包括直方图和密度图,它们能够非常清晰地展示数据的分布情况。本文将介绍如何在Python中使用这些图表类型。

什么是直方图?

直方图是一种用于展示数据分布情况的图表类型。它将数据分为若干个区间,并将每个区间内的数据数量表示为一个垂直条状图。这样可以直观地展示数据的集中程度、分散程度以及是否存在异常值等信息。

在Python中,我们可以使用Matplotlib库来绘制直方图。假设我们有一组数据,我们可以先定义数据,然后使用Matplotlib的hist()函数来生成直方图,如下所示:

import matplotlib.pyplot as plt

data = [1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 9, 9, 10]
plt.hist(data, bins=5, edgecolor='black')
plt.show()

image

在上面的代码中,我们首先导入了Matplotlib库。然后定义了一个名为data的数据列表。最后,我们使用hist()函数来绘制直方图。该函数接受两个参数,第一个参数是数据列表,第二个参数是用于指定区间数量的bins参数。我们还可以使用edgecolor参数来指定直方图的轮廓线颜色。最后,我们使用show()函数来显示直方图。

什么是密度图?

密度图是一种用于展示数据分布情况的图表类型。它是一种平滑的曲线图,显示的是数据分布的概率密度。与直方图不同,密度图可反映出数据的连续性,更加精确地展示数据的分布情况。

在Python中,我们可以使用Seaborn库来绘制密度图。与Matplotlib不同,Seaborn在图形外观和可读性方面提供了更多的默认选项。我们只需要传递数据到kdeplot()函数中,就能轻松地生成密度图,如下所示:

import seaborn as sns
import numpy as np

np.random.seed(0)
data = np.random.randn(100)
sns.kdeplot(data)

image

在上面的代码中,我们首先导入了Seaborn库和NumPy库。然后,我们使用NumPy的random模块生成100个随机数,并使用Seaborn的kdeplot()函数来生成密度图。

与直方图类似,密度图也有了一些定制选项,可以帮助我们更好地呈现数据。例如,我们可以使用shade参数来表示分布图的阴影,如下所示:

sns.kdeplot(data, shade=True)

image

此外,我们还可以使用cut参数来控制曲线的长度;同时,还可以使用color参数来调整曲线的颜色,以及使用alpha参数来调节曲线的透明度等。由此可见,Seaborn库有更多的选项来控制绘图,应该可以满足大多数需要生成的图表类型。