首页 > 编程知识 正文

Python直方图频率图

时间:2023-11-22 04:35:41 阅读:298326 作者:WTDH

直方图是一种常用的数据可视化工具,可以用来展示一组数据的分布情况。在Python中,我们可以使用matplotlib库来生成直方图频率图。

一、绘制直方图

1、首先,导入matplotlib库和numpy库:

import matplotlib.pyplot as plt
import numpy as np

2、生成一组随机数据:

np.random.seed(123)
data = np.random.normal(0, 1, 1000)

3、使用plt.hist()函数绘制直方图:

plt.hist(data, bins=30, edgecolor='black')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Data')
plt.show()

4、运行以上代码,即可看到生成的直方图频率图。

二、调整直方图参数

1、调整柱子的数量:

plt.hist(data, bins=10, edgecolor='black')

2、调整柱子的颜色:

plt.hist(data, bins=30, edgecolor='black', color='green')

3、调整柱子的宽度:

plt.hist(data, bins=30, edgecolor='black', width=0.2)

4、调整x轴和y轴的刻度:

plt.xticks(np.arange(-3, 4, 1))
plt.yticks(np.arange(0, 251, 50))

通过调整这些参数,可以使得直方图更加符合观察需求。

三、划分子图

有时候我们需要同时比较多组数据的分布情况,可以使用子图来展示。以下是一个示例:

data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 1000)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))
ax1.hist(data1, bins=30, edgecolor='black')
ax1.set_xlabel('Value')
ax1.set_ylabel('Frequency')
ax1.set_title('Histogram of Data 1')

ax2.hist(data2, bins=30, edgecolor='black')
ax2.set_xlabel('Value')
ax2.set_ylabel('Frequency')
ax2.set_title('Histogram of Data 2')

plt.tight_layout()
plt.show()

这样可以同时展示两组数据的直方图,并且进行直观的比较。

四、其他类型的直方图

除了常见的一维直方图,还可以绘制二维直方图和累积直方图。

1、二维直方图:

data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 1000)

plt.hist2d(data1, data2, bins=30, cmap='Blues')
plt.xlabel('Data 1')
plt.ylabel('Data 2')
plt.title('2D Histogram')
plt.colorbar()
plt.show()

2、累积直方图:

plt.hist(data, bins=30, cumulative=True, edgecolor='black')
plt.xlabel('Value')
plt.ylabel('Cumulative Frequency')
plt.title('Cumulative Histogram')
plt.show()

以上是关于python直方图频率图的简要介绍和示例代码,希望对你有所帮助!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。