Python根据‘新生数据.xls’,绘制: 男生身高分布直方图和拟合曲线; 女生身高分布直方图和拟合曲线;
时间: 2023-05-19 22:06:58 浏览: 294
详解用Python为直方图绘制拟合曲线的两种方法
好的,我可以为您提供一些Python代码来绘制这些直方图和拟合曲线。您需要使用pandas和matplotlib库来读取和绘制数据。以下是一个示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
# 读取数据
data = pd.read_excel('新生数据.xls')
# 分离男女生数据
male_data = data[data['性别'] == '男']
female_data = data[data['性别'] == '女']
# 绘制男生身高分布直方图和拟合曲线
plt.hist(male_data['身高'], bins=20, density=True, alpha=0.6, color='b')
mu, std = norm.fit(male_data['身高'])
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("Male Height Distribution")
plt.xlabel("Height (cm)")
plt.ylabel("Probability Density")
plt.show()
# 绘制女生身高分布直方图和拟合曲线
plt.hist(female_data['身高'], bins=20, density=True, alpha=0.6, color='r')
mu, std = norm.fit(female_data['身高'])
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("Female Height Distribution")
plt.xlabel("Height (cm)")
plt.ylabel("Probability Density")
plt.show()
```
这段代码将读取名为“新生数据.xls”的Excel文件,并将男女生的身高数据分别存储在male_data和female_data变量中。然后,它将使用matplotlib库绘制两个直方图和拟合曲线,其中拟合曲线使用正态分布函数拟合数据。最后,它将显示这两个图形。
阅读全文