用python绘制频率分布图和密度图,分档建议以6为中值,每档10度,分20档(超出最上、最下档的归入最上、最下档
时间: 2024-04-09 18:28:41 浏览: 78
要绘制频率分布图和密度图,您可以使用`seaborn`库中的`histplot`函数。根据您的需求,以下是一个示例代码:
```python
import seaborn as sns
import matplotlib.pyplot as plt
# 假设有一组数据
data = [30, 25, 27, 32, 35, 40, 38, 42, 45, 50, 55, 60, 62, 65, 70, 75]
# 设置分档参数
bin_width = 10
bin_count = 20
bin_range = (int(min(data) // bin_width * bin_width), int(max(data) // bin_width * bin_width) + bin_width)
# 绘制频率分布图
sns.histplot(data, bins=bin_count, kde=False)
plt.xticks(range(bin_range[0], bin_range[1]+bin_width, bin_width))
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Frequency Distribution')
plt.show()
# 绘制密度图
sns.histplot(data, bins=bin_count, kde=True)
plt.xticks(range(bin_range[0], bin_range[1]+bin_width, bin_width))
plt.xlabel('Value')
plt.ylabel('Density')
plt.title('Density Distribution')
plt.show()
```
在以上代码中,`data`表示您的数据列表。然后,我们设置了分档的参数,其中`bin_width`表示每个档的宽度,`bin_count`表示总共的档数,`bin_range`表示档的取值范围。
接下来,我们使用`seaborn`库的`histplot`函数绘制频率分布图和密度图。通过设置`kde`参数为`False`可以绘制频率分布图,设置为`True`可以绘制密度图。在绘制之前,我们使用`xticks`函数设置自定义的横坐标,其中`range(bin_range[0], bin_range[1]+bin_width, bin_width)`表示从最小值到最大值的取值范围。
最后,我们设置横坐标、纵坐标和标题,并使用`show`函数显示图形。
希望能够帮到您!
阅读全文