python根据scor.xlsx文件(1)选择总分和平均分绘制堆积柱状图 (2)选择数学,语文,英语,绘制多数据列柱状图
时间: 2024-02-20 21:59:48 浏览: 65
好的,我来解答你的问题。
针对你的第一个问题,我假设你已经安装好了 Python 和 Pandas 库,并且已经将 scor.xlsx 文件放在了当前工作目录下。那么你可以按照以下步骤进行操作:
1. 导入 Pandas 库
```python
import pandas as pd
```
2. 读取 scor.xlsx 文件,并将数据存储在 DataFrame 中:
```python
df = pd.read_excel('scor.xlsx')
```
3. 计算总分和平均分,并将结果存储在新的 DataFrame 中:
```python
df_sum = pd.DataFrame({'Total': df.sum(axis=1), 'Average': df.mean(axis=1)})
```
4. 使用 Matplotlib 库绘制堆积柱状图:
```python
import matplotlib.pyplot as plt
# 设置图形大小
plt.figure(figsize=(10, 6))
# 绘制堆积柱状图
plt.bar(df_sum.index, df_sum['Total'], label='Total Score')
plt.bar(df_sum.index, df_sum['Average'], bottom=df_sum['Total'], label='Average Score')
# 添加 X 轴和 Y 轴标签
plt.xlabel('Student')
plt.ylabel('Score')
# 添加标题
plt.title('Stacked Bar Chart of Total and Average Score')
# 添加图例
plt.legend()
# 显示图形
plt.show()
```
针对你的第二个问题,你可以按照以下步骤进行操作:
1. 读取 scor.xlsx 文件,并将数据存储在 DataFrame 中:
```python
df = pd.read_excel('scor.xlsx')
```
2. 选择需要绘制的数据列,并将结果存储在新的 DataFrame 中:
```python
df_selected = df[['Math', 'Chinese', 'English']]
```
3. 使用 Matplotlib 库绘制多数据列柱状图:
```python
import numpy as np
# 设置图形大小
plt.figure(figsize=(10, 6))
# 设置 X 轴刻度标签
labels = df.index.tolist()
# 设置每个柱子的宽度
bar_width = 0.2
# 设置每个数据列的颜色
colors = ['r', 'g', 'b']
# 循环绘制每个数据列的柱状图
for i in range(df_selected.shape[1]):
x = np.arange(len(labels))
y = df_selected.iloc[:, i]
plt.bar(x + i * bar_width, y, width=bar_width, color=colors[i], label=df_selected.columns[i])
# 设置 X 轴标签
plt.xlabel('Student')
# 设置 Y 轴标签
plt.ylabel('Score')
# 设置标题
plt.title('Multiple Bar Chart of Math, Chinese and English')
# 添加 X 轴刻度标签
plt.xticks(x + bar_width, labels)
# 添加图例
plt.legend()
# 显示图形
plt.show()
```
希望我的回答能够帮助到你!
阅读全文