1.考察知识点添加标题、添加图例、注释文本等。
结合实验一中第一题数据,并在第一问的基础上定制柱形图,具体要求为:
- 设置y轴的标签为“平均成绩(分)”;
- 设置x轴的标签为“学科”;
- 添加标题为“高二男生、女生的平均成绩”;
- 添加图例“平均成绩(男)”、“平均成绩(女)”;
- 向每个柱形的顶部添加注释文本,标注平均成绩。
代码如下:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.arange(6)
y1 = np.array([85.5, 91, 72, 59, 66, 55])
y2 = np.array([94, 82, 89.5, 62, 49, 53])
bar_rect = plt.bar(x, y1, tick_label=['语文', '数学', '英语', '物理', '化学', '生物'],
align='edge', width=0.3)
plt.bar(x + 0.3, y2, align='edge', width=0.3)
kinds = ['平均成绩(男)', '平均成绩(女)']
tick_label = ['语文', '数学', '英语', '物理', '化学', '生物']
xx = range(len(tick_label))
for a, b in zip(x+0.15, y1):
plt.text(a, b, '%.0f' % b, ha='center', va='bottom', fontsize=12);
for a, b in zip(x + 0.45, y2):
plt.text(a, b, '%.0f' % b, ha='center', va='bottom', fontsize=12);
plt.legend(kinds)
plt.xticks([index + 0.3 for index in xx], tick_label)
plt.xlabel('学科')
plt.ylabel('平均成绩(分)')
plt.title('高二男生、女生的平均成绩')
plt.show()
2. 考察知识点设置坐标轴的标签、刻度标签、图例等
编写程序。根据下表我国2000-2019年总人口数据,绘制图形。
指标 | 年末总人口(万人) | 0-14岁人口(万人) | 15-64岁人口(万人) | 65岁及以上人口(万人) |
2000年 | 126743 | 29012 | 88910 | 8821 |
2001年 | 127627 | 28716 | 89849 | 9062 |
2002年 | 128453 | 28774 | 90302 | 9377 |
2003年 | 129227 | 28559 | 90976 | 9692 |
2004年 | 129988 | 27947 | 92184 | 9857 |
2005年 | 130756 | 26504 | 94197 | 10055 |
2006年 | 131448 | 25961 | 95068 | 10419 |
2007年 | 132129 | 25660 | 95833 | 10636 |
2008年 | 132802 | 25166 | 96680 | 10956 |
2009年 | 133450 | 24659 | 97484 | 11307 |
2010年 | 134091 | 22259 | 99938 | 11894 |
2011年 | 134735 | 22164 | 100283 | 12288 |
2012年 | 135404 | 22287 | 100403 | 12714 |
2013年 | 136072 | 22329 | 100582 | 13161 |
2014年 | 136782 | 22558 | 100469 | 13755 |
2015年 | 137462 | 22715 | 100361 | 14386 |
2016年 | 138271 | 23008 | 100260 | 15003 |
2017年 | 139008 | 23348 | 99829 | 15831 |
2018年 | 139538 | 23523 | 99357 | 16658 |
2019年 | 140005 | 23493 | 98914 | 17599 |
- 绘制2000-2019年年末总人口数据散点图,要求使用标签、标题等辅助元素;
- 绘制2000-2019年各年龄段年末总人口散点图,要求使用标签、标题、图例等,并对x轴刻度标签设置一定的角度。
代码如下:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = ['2000年', '2001年', '2002年', '2003年', '2004年', '2005年', '2006年', '2007年', '2008年', '2009年', '2010年',
'2011年', '2012年', '2013年', '2014年', '2015年', '2016年', '2017年', '2018年', '2019年']
y = [126743, 127627, 128453, 129227, 129988, 130756, 131448, 132129, 132802, 133450, 134091, 134735, 135404, 136072,
136782, 137462, 138271, 139008, 139538, 140005]
kinds = ['年末总人口(万人)']
plt.scatter(x, y, marker='^')#marker可以改成你自己喜欢的
plt.xticks(rotation=45)
plt.xlabel('年份')
plt.ylabel('年末总人口(万人)')
plt.title('2000-2019年总人口数据')
plt.legend(kinds)
plt.show()
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = ['2000年', '2001年', '2002年', '2003年', '2004年', '2005年', '2006年', '2007年', '2008年', '2009年', '2010年',
'2011年', '2012年', '2013年', '2014年', '2015年', '2016年', '2017年', '2018年', '2019年']
y1 = [29012, 28716, 28774, 28559, 27947, 26504, 25961, 25660, 25166, 24659, 22259, 22164, 22287, 22329, 22558,
22715, 23008, 23348, 23523, 23493]
y2 = [88910, 89849, 90302, 90976, 92184, 94197, 95068, 95833, 96680, 97484, 99938, 100283, 100403, 100582,
100469, 100361, 100260, 99829, 99357, 98914]
y3 = [8821, 9062, 9377, 9692, 9857, 10055, 10419, 10636, 10956, 11307, 11894, 12288, 12714, 13161, 13755, 14386,
15003, 15831, 16658, 17599]
kinds = ['0-14岁人口(万人)', '15-64岁人口(万人)', '65岁及以上人口(万人)']
plt.scatter(x, y1, marker='*')
plt.scatter(x, y2, marker='^')
plt.scatter(x, y3, marker='+')
plt.xticks(rotation=45)
plt.xlabel('年份')
plt.ylabel('年末总人口(万人)')
plt.title('2000-2019年各年龄段年末总人口散点图')
plt.legend(kinds)
plt.show()