(1)数据读取:将StudentsDataSet.xlsx读取转为DataFrame数据格式。(2)统计报考的专业,绘制报考专业的饼图分布 (3)统计学生总成绩,绘制以30分为区间,统计各区间分数频次的柱状图(即,<300,301-330,331-360,>360)
时间: 2024-02-06 10:02:48 浏览: 120
以下是Python代码实现:
```python
# 导入需要用到的库
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_excel('StudentsDataSet.xlsx')
# 统计报考专业人数并绘制饼图
major_count = df['Major'].value_counts()
plt.pie(major_count, labels=major_count.index, autopct='%1.1f%%')
plt.title('Major Distribution')
plt.show()
# 统计学生总成绩并绘制柱状图
score_bins = [0, 300, 330, 360, 1000]
score_labels = ['<300', '301-330', '331-360', '>360']
df['Total Score'] = df[['Chinese', 'Math', 'English']].sum(axis=1)
score_freq = pd.cut(df['Total Score'], bins=score_bins, labels=score_labels).value_counts()
plt.bar(score_freq.index, score_freq.values)
plt.title('Total Score Distribution')
plt.xlabel('Score Range')
plt.ylabel('Frequency')
plt.show()
```
解释一下代码:
首先导入了需要用到的pandas和matplotlib.pyplot库。
然后使用`pd.read_excel()`函数读取Excel文件并转换为DataFrame格式。
接着使用`value_counts()`函数统计不同专业的人数,并将结果绘制成饼图。
最后,使用`pd.cut()`函数将学生总成绩按照给定的区间划分,并使用`value_counts()`函数统计每个区间的频次,并将结果绘制成柱状图。
阅读全文