实例 10 :4 个树种不同季节的细根生物量
细根生物量反映了根系从土壤中吸收水分和养分的能力,是植物地下部分碳汇集能力的重要体现。不同树种细根生物量存在差异性,各树种细根生物量在不同季节间差异较为明显。假设某大学分别于春季、夏季、秋季对马尾松、樟树、杉木、桂花 4 个树种进行观察,并记录了不同树种的细根生物量,具体如表 2-9 所示。根据表 2-9 的数据,将“季节”一列的数据作为 x 轴的刻度标签,将其他列的数据作为y 轴的数据,绘制马尾松、樟树、杉木、桂花的细根生物量的误差棒图,具体代码如下。
In [26]:# 10_fine_root_biomassimport numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.family'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = False# 准备 x 轴和 y 轴的数据x = np.arange(3)y1 = 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, y1, 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, y1, yerr=error1, 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()运行程序,效果如图 2-24 所示。图 2-24 中, x 轴代表季节, y 轴代表细根生物量,蓝色、橙色、绿色、红色的柱形依次代表马尾松、樟树、杉木、桂花,柱形上方的黑色短线代表误差棒。由图 2-24 可知,杉木的细根生物量最多,说明杉木吸收水分和养分的能力最强 ;樟树的细根生物量最少,说明樟树吸收水分和养分的能力最弱。注意:本章所介绍的简单图表(雷达图除外)除了可以使用 pyplot 模块的绘图函数绘制,还可以通过 Axes 类中与绘图函数同名的方法进行绘制。例如,pyplot 模块的 bar() 函数与 Axes 类的 bar() 方法都可以绘制柱形图,它们的参数几乎相同(self 除外)。由于本章设计的实例相对比较简单,因此所有的实例都采用 pyplot 模块的绘制函数实现。
2.11 本章小结本章主要介绍了如何使用 matplotlib 的绘图函数绘制简单的图表,包括折线图、柱形图或堆积柱形图、条形图或堆积条形图、堆积面积图、直方图、饼图或圆环图、散点图或气泡图、箱形图、雷达图、误差棒图。希望大家通过学习本章的内容,能够掌握绘图函数的用法,并可以使用这些函数绘制简单的图表,从而为后续的学习打好扎实的基础。
2.12 习题一、填空题1.plot() 函数会返回一个包含多个 类对象的列表。
2.常见的 包括堆积面积图、堆积柱形图和堆积条形图。3.pyplot 绘制的直方图默认有 个矩形条。二、判断题1.pyplot 只能使用 errorbar() 函数绘制误差棒图。( )2.pyplot 可以使用 barh() 函数绘制堆积条形图。( )3.pyplot 绘制的箱形图默认不显示异常值。( )三、选择题1.下列函数中,可以快速绘制雷达图的是( )。A.bar()B.barh()C.hist()D.polar()2.当 pyplot 调用 barh() 函数绘图时,可以通过哪个参数设置图表的刻度标签?( )A.widthB.heightC.tick_labelD.align3.请阅读下面一段代码 :plt.bar(x, y1, tick_label=["A", "B", "C", "D"])plt.bar(x, y2, bottom=y1, tick_label=["A", "B", "C", "D"])以上代码中 bar() 函数的 bottom 参数的作用是( )。A.将后绘制的柱形置于先绘制的柱形下方B.将后绘制的柱形置于先绘制的柱形上方C.将后绘制的柱形置于先绘制的柱形左方D.将后绘制的柱形置于先绘制的柱形右方4.下列选项中,程序运行的效果为圆环图的是( )。A.import numpy as npimport matplotlib.pyplot as pltdata = np.array([20, 50, 10, 15, 30, 55])pie_labels = np.array(['A', 'B', 'C', 'D', 'E', 'F'])plt.pie(data, labels=pie_labels)plt.show()B.import numpy as npimport matplotlib.pyplot as pltdata = np.array([20, 50, 10, 15, 30, 55])pie_labels = np.array(['A', 'B', 'C', 'D', 'E', 'F'])plt.pie(data, radius=1.5, labels=pie_labels)plt.show()C.import numpy as npimport matplotlib.pyplot as pltdata = np.array([20, 50, 10, 15, 30, 55])pie_labels = np.array(['A', 'B', 'C', 'D', 'E', 'F'])plt.pie(data, radius=1.5, explode=[0, 0.2, 0, 0, 0, 0],labels=pie_labels)plt.show()
D.import numpy as npimport matplotlib.pyplot as pltdata = np.array([20, 50, 10, 15, 30, 55])pie_labels = np.array(['A', 'B', 'C', 'D', 'E', 'F'])plt.pie(data, radius=1.5, wedgeprops={'width': 0.6},labels=pie_labels)plt.show()5.关于使用 boxplot() 函数绘制的箱形图,下列描述正确的是( )。A.箱形图中异常值对应的符号默认为星号B.箱形图只能垂直摆放,无法水平摆放C.箱形图默认显示箱体D.箱形图默认不会显示异常值四、编程题1.已知实验中学举行了高二期中模拟考试,考试后分别计算了全体男生、女生各科的平均成绩,结果如表 2-10 所示。按照以下要求绘制图表 :
(1)绘制柱形图。柱形图的 x 轴为学科, y 轴为平均成绩。(2)绘制堆积柱形图。堆积柱形图的 x 轴为学科, y 轴为平均成绩。2.拼多多作为互联网电商的一匹黑马,短短几年内用户规模已经超过 3 亿。2019 年 9月拼多多平台对所有子类目的销售额进行了统计,结果如表 2-11 所示。
2.10.2----Python 数据可视化
猜你喜欢
转载自blog.csdn.net/qq_43416206/article/details/132262619
今日推荐
周排行