(1)选择总分和平均分绘制堆积柱状图 (2)选择数学,语文,英语,绘制多数据列柱状图
时间: 2023-10-17 11:14:37 浏览: 118
好的,您的第一个问题是关于绘制柱状图的。根据您的需求,我可以为您提供两种不同的柱状图绘制方式:
1. 堆积柱状图:
堆积柱状图可以同时显示总分和平均分的分布情况,适合比较总分和平均分的差异。下面是使用Python的matplotlib库绘制堆积柱状图的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据准备
subjects = ['语文', '数学', '英语']
total_score = [80, 90, 85]
average_score = [75, 85, 80]
# 绘图
x = np.arange(len(subjects))
width = 0.35
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, total_score, width, label='总分')
rects2 = ax.bar(x + width/2, average_score, width, label='平均分')
# 添加文字说明、图例、坐标轴等
ax.set_ylabel('分数')
ax.set_title('各科成绩')
ax.set_xticks(x)
ax.set_xticklabels(subjects)
ax.legend()
# 显示图形
plt.show()
```
上述代码中,我们首先定义了三门科目的总分和平均分,然后使用numpy库生成了一个表示科目的序列x,使用matplotlib库的bar函数绘制了堆积柱状图。最后,我们为图形添加了文字说明、图例、坐标轴等。
2. 多数据列柱状图:
多数据列柱状图可以同时比较多个科目的成绩情况,适合比较各科之间的差异。下面是使用Python的matplotlib库绘制多数据列柱状图的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据准备
subjects = ['语文', '数学', '英语']
scores = {'小明': [80, 90, 85],
'小红': [90, 85, 80],
'小李': [70, 80, 75]}
# 绘图
x = np.arange(len(subjects))
width = 0.2
fig, ax = plt.subplots()
rects = []
for i, (name, score) in enumerate(scores.items()):
r = ax.bar(x + i*width, score, width, label=name)
rects.append(r)
# 添加文字说明、图例、坐标轴等
ax.set_ylabel('分数')
ax.set_title('各科成绩')
ax.set_xticks(x + width/2)
ax.set_xticklabels(subjects)
ax.legend()
# 显示图形
plt.show()
```
上述代码中,我们首先定义了三门科目和各学生的成绩,然后使用numpy库生成了一个表示科目的序列x,使用matplotlib库的bar函数循环绘制了多个数据列的柱状图。最后,我们为图形添加了文字说明、图例、坐标轴等。
阅读全文