实验二图表辅助元素的定制

1.考察知识点添加标题、添加图例、注释文本等。

结合实验一中第一题数据,并在第一问的基础上定制柱形图,具体要求为:

  1. 设置y轴的标签为“平均成绩(分)”;
  2. 设置x轴的标签为“学科”;
  3. 添加标题为“高二男生、女生的平均成绩”;
  4. 添加图例“平均成绩(男)”、“平均成绩(女)”;
  5. 向每个柱形的顶部添加注释文本,标注平均成绩。

 代码如下:

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

  1. 绘制2000-2019年年末总人口数据散点图,要求使用标签、标题等辅助元素;
  2. 绘制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()

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值