题目一:绘制条形图
编写程序。根据实例3的要求,绘制一个展示各商品种类的网购替代率的条形图,实现过程如下:
- 导入matplotlib.pyplot模块;
- 准备x轴和y轴的数据;
- 绘制条形图。
编程代码:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.array([0.959, 0.951, 0.935, 0.924, 0.893,
0.892, 0.865, 0.863, 0.860, 0.856,
0.854, 0.835, 0.826, 0.816, 0.795,
0.765, 0.763, 0.67])
y = np.arange(1, 19)
labels = ["家政、家教、保姆等生活服务", "飞机票、火车票", "家具", "手机、手机配件",
"计算机及其配套产品", "汽车用品", "通信充值,游戏充值", "个人护理用品",
"书报杂志及音像制品", "餐饮、旅游、住宿", "家用电器",
"食品、饮料、烟酒、保健品", "家庭日杂用品", "保险、演出票务",
"服装、鞋帽、家用纺织品", "数码产品", "其他商品和服务", "工艺品、收藏品"]
plt.barh(y, x, tick_label=labels, align='center', height=0.6)
plt.show()
实验结果:
题目二:绘制饼图
编写程序。根据实例6的要求,绘制一个展示支付宝月账单报告的饼图,实现过程如下:
- 导入matplotlib.pyplot模块;
- 准备饼图的数据;
- 绘制饼图。
实验代码:
#绘制一个展示支付宝月账单报告的饼图
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 饼图外侧的说明文字
kinds = ['购物','人情往来','餐饮美食','通信物流','生活日用','交通出行','休闲娱乐','其他']
# 饼图的数据
money_scale=[800/3000,100/3000,1000/3000,200/3000,300/3000,200/3000,200/3000,200/3000]
dev_position = [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
#绘制饼图
plt.pie (money_scale, labels=kinds, autopct='%3.lf%%', shadow=True, explode=dev_position, startangle=90)
plt.show()
实验结果:
题目三:绘制箱形图
编写程序。根据实例8的要求,绘制一个2017年和2018年全国发电量统计箱形图
实现过程如下:
- 导入matplotlib.pyplot模块;
- 准备箱形图的数据;
- 绘制箱形图。
实验代码:
#绘制一个2017年和2018年全国发电量统计箱形图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
data_2018 = np.array([5200, 5254.5, 5283.4, 5107.8, 5443.3, 5550.6,
6400.2, 6404.9, 5483.1, 5330.2, 5543, 6199.9])
data_2017 = np.array([4605.2, 4710.3, 5168.9, 4767.2, 4947, 5203,
6047.4, 5945.5, 5219.6, 5038.1, 5196.3, 5698.6])
# 绘制箱形图
plt.boxplot([data_2018, data_2017], labels=('2018年', '2017年'),
meanline=True, widths=0.5, vert=False, patch_artist=True)
plt.show()
实验结果:
题目四:柱形图的上方绘制误差棒
编写程序。根据实例10的要求,绘制一个展示马尾松、樟树、杉木、桂花4个树种不同季节的细根生物量的误差棒图,实现过程如下:
- 导入matplotlib.pyplot模块;
- 准备柱形图的数据;
- 准备测量偏差数据;
- 绘制柱形图;
- 在柱形图的上方绘制误差棒。
实验代码:
#绘制一个展示马尾松、樟树、杉木、桂花4个树种不同季节的细根生物量的误差棒图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 准备 x轴和y轴的数据
x = np.arange(3)
yl = np.array([2.04,1.57,1.63])
y2 = np.array([1.69,1.61,1.64])
y3 = np.array([4.65,4.99,4.94])
y4 = np.array([3.39,2.33,4.10])
# 指定测量偏差
error1 = [0.16,0.08,0.10]
error2 = [0.27,0.14,0.14]
error3 = [0.34,0.32,0.29]
error4 = [0.23,0.23,0.39]
bar_width = 0.2
# 绘制柱形图
plt.bar(x,yl,bar_width)
plt.bar(x + bar_width,y2,bar_width, align="center",
tick_label=["春季","夏季","秋季"])
plt.bar(x + 2*bar_width,y3,bar_width)
plt.bar(x + 3*bar_width, y4, bar_width)
# 绘制误差棒 : 横杆大小为 3,线条宽度为 3,线条颜色为黑色,数据点标记为像素点plt.errorbar(x,yl,yerr=errorl,capsize=3,elinewidth=2, fmt='k,')
plt.errorbar(x + bar_width, y2, yerr=error2, capsize=3,
elinewidth=2,fmt='k,')
plt.errorbar(x + 2*bar_width, y3, yerr=error3, capsize=3,
elinewidth=2,fmt='k,')
plt.errorbar(x + 3*bar_width, y4, yerr=error4, capsize=3,
elinewidth=2,fmt='k,')
plt.show()