python 重写直方图绘制函数
时间: 2023-08-31 13:05:23 浏览: 89
在Python中,可以使用matplotlib库中的hist函数绘制直方图。如果您想自己编写函数来绘制直方图,可以使用以下步骤:
1. 计算数据的频率分布,也就是每个数据点在数据集中出现的次数。
2. 根据数据的范围和分布情况,确定直方图的划分区间和区间宽度。
3. 遍历数据集,将每个数据点分配到对应的区间中,并统计每个区间内的数据点个数。
4. 根据区间个数和区间宽度,计算每个区间的宽度比例,并绘制直方图。
以下是一个示例代码,用于演示如何实现一个简单的直方图绘制函数:
```python
import matplotlib.pyplot as plt
import numpy as np
def plot_histogram(data, bins=10, title='', xlabel='', ylabel=''):
# 计算频率分布
frequencies, bins = np.histogram(data, bins=bins)
# 计算区间宽度
bin_width = bins[1] - bins[0]
# 计算区间宽度比例
bin_widths = bin_width * np.ones_like(frequencies)
bin_widths /= frequencies.sum()
# 绘制直方图
plt.bar(bins[:-1], frequencies, width=bin_width, align='edge', alpha=0.5)
plt.title(title)
plt.xlabel(xlabel)
plt.ylabel(ylabel)
# 绘制区间宽度比例
for i, (x, y, w) in enumerate(zip(bins[:-1], frequencies, bin_widths)):
plt.text(x + bin_width / 2, y + 0.05 * frequencies.max(), f'{w:.2f}', ha='center')
plt.show()
```
该函数接受一个数据集和一个可选的划分区间数,以及一些可选的标题、x轴标签和y轴标签。它计算数据的频率分布,确定区间宽度和区间宽度比例,并绘制直方图和区间宽度比例。
阅读全文