绘制两组数据柱形图的代码
时间: 2023-06-11 18:06:31 浏览: 102
以下是Python中使用matplotlib库绘制两组数据柱形图的代码示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.array([1, 2, 3, 4, 5]) # x轴数据
y1 = np.array([10, 8, 6, 4, 2]) # 第一组y轴数据
y2 = np.array([5, 4, 3, 2, 1]) # 第二组y轴数据
# 绘制柱形图
plt.bar(x-0.2, y1, 0.4, label='Group 1')
plt.bar(x+0.2, y2, 0.4, label='Group 2')
# 添加图例
plt.legend()
# 添加标签和标题
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Two Groups Bar Chart')
# 显示图形
plt.show()
```
该代码中使用了numpy库生成了两组数据,然后使用matplotlib中的`bar`函数绘制了两组数据柱形图,其中参数`x-0.2`和`x+0.2`表示两组柱形图在x轴上的位置,`0.4`表示柱形图的宽度。最后添加了标签和标题,并显示图形。
相关问题
按要求绘制图表: (1) 绘制柱形图。柱形图的x轴为学科,y轴为平均成绩。 (2) 设置y轴的标签为:“平均成绩(分)” (3) 设置标题:“男生,女生平均成绩” (4) 设置x轴的刻度标签位于两组柱形中间。 (5) 添加图例 (6) 向每个柱形的顶部添加注释文本,标注平均成绩。 (7) 绘制堆积柱形图。堆积柱形图的x轴为学科,y轴为平均成绩。
由于没有提供数据,这里给出绘制柱形图和堆积柱形图的代码模板,需要根据实际数据进行适当修改:
```python
import matplotlib.pyplot as plt
import numpy as np
# 柱形图
subjects = ['语文', '数学', '英语', '物理', '化学', '生物']
avg_scores_male = [90, 85, 95, 80, 75, 85]
avg_scores_female = [92, 87, 93, 82, 78, 88]
x = np.arange(len(subjects))
width = 0.35
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, avg_scores_male, width, label='男生')
rects2 = ax.bar(x + width/2, avg_scores_female, width, label='女生')
ax.set_ylabel('平均成绩(分)')
ax.set_title('男生,女生平均成绩')
ax.set_xticks(x)
ax.set_xticklabels(subjects)
ax.legend()
for rect in rects1+rects2:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
plt.show()
# 堆积柱形图
subjects = ['语文', '数学', '英语', '物理', '化学', '生物']
avg_scores_male = [90, 85, 95, 80, 75, 85]
avg_scores_female = [92, 87, 93, 82, 78, 88]
x = np.arange(len(subjects))
fig, ax = plt.subplots()
ax.bar(subjects, avg_scores_male, label='男生')
ax.bar(subjects, avg_scores_female, bottom=avg_scores_male, label='女生')
ax.set_ylabel('平均成绩(分)')
ax.set_title('男生,女生平均成绩')
ax.legend()
plt.show()
```
这里以6个学科的男女生平均成绩为例,第一个是柱形图,第二个是堆积柱形图。
基泰坦尼克号海难幸存状况分析python实训项目,任务四:幸存和遇难乘客堂兄弟姐妹的数量分布 1、导入matplotlib.pyplot模块; 2、准备x轴和y轴的数据; 3、绘制两组柱形图,分别使用颜色#FFCC00和#B0C4DE; 4、设置y轴的标签为“遇难乘客”,x轴的标签为“客堂兄弟姐妹的数量”; 5、设置图表的标题为“幸存和遇难乘客对比”; 6、设置x轴的刻度标签为图书种类; 7、添加图例。
好的,以下是代码实现:
```python
import matplotlib.pyplot as plt
# 准备数据
sibsp_survived = titanic_data[titanic_data['Survived'] == 1]['SibSp'].value_counts()
sibsp_not_survived = titanic_data[titanic_data['Survived'] == 0]['SibSp'].value_counts()
x = range(len(sibsp_survived))
# 绘制柱形图
plt.bar(x, sibsp_survived, color='#FFCC00', label='幸存')
plt.bar(x, sibsp_not_survived, bottom=sibsp_survived, color='#B0C4DE', label='遇难')
# 设置标签和标题
plt.xlabel('客堂兄弟姐妹的数量')
plt.ylabel('遇难乘客')
plt.title('幸存和遇难乘客对比')
# 设置刻度标签
plt.xticks(x, sibsp_survived.index)
# 添加图例
plt.legend()
plt.show()
```
解释一下代码:
1. 首先导入matplotlib.pyplot模块。
2. 使用titanic_data数据集中幸存和遇难乘客的客堂兄弟姐妹数量进行统计,得到sibsp_survived和sibsp_not_survived两个Series对象,并准备x轴的数据。
3. 使用plt.bar()函数绘制两组柱形图,其中幸存乘客的柱形图颜色为#FFCC00,遇难乘客的柱形图颜色为#B0C4DE。
4. 设置y轴的标签为“遇难乘客”,x轴的标签为“客堂兄弟姐妹的数量”。
5. 设置图表的标题为“幸存和遇难乘客对比”。
6. 使用plt.xticks()函数设置x轴的刻度标签为sibsp_survived的索引值。
7. 添加图例。
希望这个代码对你有所帮助!
阅读全文