在一般情况下,刻度线的位置和刻度线相应位置处的数值(刻度标签)是由生成图形的原始数据决定的。如果需要调整刻度线的位置和对应的数值,那么可以使用函数xticks()和yticks(),或者实例方法setxticks()和setyticks()进行展示效果的改变。但是,这种调整是相对固定的。也就是说,我们不能根据原始数据的改变做出相应的调整,只能机械地用不变的模式进行可视化效果的提高。下面,我们就介绍如何根据不同的原始数据科学、合理地调整刻度线的位置和数值。代码 运行结果 代码讲解 (1)使用Python中的函数split(),对变量ticklabels存储的字符串以空格作为分隔符进行切分,从而形成将字符串切片后的由字符串元素所组成的列表ticklabelslist。 (2)在这里,我们没有使用实例方法setxticks()设置刻度线的位置和相应位置处的数值,而是通过实例方法setmajorformatter()和setmajorlocator()分别设置主刻度线所在位置的数值和刻度线的位置的。这两个实例方法的参数分别是类Formatter的子类FuncFormatter的实例和类Locator的实例,其中,子类FuncFormatter的构造函数接收函数参数tickcontroller,函数tickcontroller()接收两个参数,分别是刻度线所在位置的数值value和刻度线所在的位置position。如果类MaxNLocator的构造函数中的参数integer取值是True,那么,只有当刻度线所在位置的数值是整数时,轴脊上的刻度线和刻度线对应位置的数值才会显示。 (3)通过调用实例方法getxticklabels()来获得Text实例列表xticklabeltext,通过文本Text的参数对应的实例方法来设置x轴的刻度标签的样式,即更新类Text的实例的属性。调整x轴的刻度标签的样式具体包括设置字体类型、改变文本尺寸、文本渲染类型和文本旋转角度。 需要补充的是,实例方法margins(m)可以调整数据范围的空白区域,也就是说,m倍的数据区间会被添加到原来数据区间的两端。数据范围的空白区域的调整类型既包括x轴的数据区间,也包括y轴的数据区间,参数m的取值范围是开区间(0。5,)内的浮点数。例如,如果数据区间是〔0,2〕,那么参数m0。2就会将原来的数据区间变成〔0。4,2。4〕,数据范围的空白区域增加了。如果参数m在开区间(0。5,0)内取值,那么原来的数据区间就会被剪切,即原来的数据范围的空白区域会缩小。例如,参数m0。2,数据区间〔0,2〕就会变成〔0。4,1。6〕,即数据区间〔0,2〕的两端会被去掉0。4个单位长度,数据范围的空白区域被削减了。实例方法margins(m,n)中的参数m和n分别用于调整x轴和y轴的数据范围的空白区域。当然,也可以分别通过实例方法setxmargin()和setymargin()调整x轴和y轴的数据范围的空白区域。因此,实例方法margins()的实质作用就是通过调整坐标轴的数据范围,来调整绘图区域里的图形之外的空白区域的大小。