如何将excel一组数据绘制出分布图和正态分布图,两张图合在一起展现,用python实现,要求图的x轴能清楚看到组距
时间: 2024-03-10 07:51:22 浏览: 147
你可以使用Python中的matplotlib和numpy库来实现这个任务。下面是一个简单的实现:
首先,你需要从Excel文件中读取数据。你可以使用pandas库来读取Excel文件并将其转换为numpy数组:
```python
import pandas as pd
import numpy as np
data = pd.read_excel('data.xlsx')
values = np.array(data['values'])
```
然后,你可以使用numpy库中的histogram函数来计算数据的直方图。这个函数将数据分为多个区间,并返回每个区间的计数和区间边界:
```python
hist, bins = np.histogram(values, bins=10)
```
接下来,你可以使用matplotlib库来绘制直方图和正态分布图。下面是一个示例:
```python
import matplotlib.pyplot as plt
from scipy.stats import norm
# 绘制直方图
plt.hist(values, bins=bins, edgecolor='black')
plt.xlabel('Values')
plt.ylabel('Frequency')
# 计算正态分布曲线
mu, std = norm.fit(values)
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
# 绘制正态分布曲线
plt.plot(x, p, 'k', linewidth=2)
plt.title("Data Distribution")
plt.legend(['Normal Distribution', 'Data'])
plt.show()
```
这将绘制一个包含直方图和正态分布曲线的图像。直方图将显示数据的分布,而正态分布曲线将显示数据的平均值和标准差。你可以根据需要调整参数并添加标签和标题。
阅读全文