matplotlib 刻度线的位置和数值的动态调整

在一般情况下,刻度线的位置和刻度线相应位置处的数值(刻度标签)是由生成图形的原始数据决定的。如果需要调整刻度线的位置和对应的数值,那么可以使用函数 xticks()和 yticks(),或者实例方法set_xticks()和set_yticks()进行展示效果的改变。但是,这种调整是相对固定的。也就是说,我们不能根据原始数据的改变做出相应的调整,只能机械地用不变的模式进行可视化效果的提高。下面,我们就介绍如何根据不同的原始数据科学、合理地调整刻度线的位置和数值。

代码

matplotlib 刻度线的位置和数值的动态调整


matplotlib 刻度线的位置和数值的动态调整

运行结果

matplotlib 刻度线的位置和数值的动态调整

代码讲解

(1)使用Python中的函数split(),对变量ticklabels存储的字符串以空格作为分隔符进行切分,从而形成将字符串切片后的由字符串元素所组成的列表ticklabels_list。

(2)在这里,我们没有使用实例方法set_xticks()设置刻度线的位置和相应位置处的数值,而是通过实例方法set_major_formatter()和set_major_locator()分别设置主刻度线所在位置的数值和刻度线的位置的。这两个实例方法的参数分别是类Formatter的子类FuncFormatter的实例和类Locator的实例,其中,子类FuncFormatter的构造函数接收函数参数tick_controller,函数tick_controller()接收两个参数,分别是刻度线所在位置的数值 value 和刻度线所在的位置 position。如果类 MaxNLocator的构造函数中的参数integer取值是True,那么,只有当刻度线所在位置的数值是整数时,轴脊上的刻度线和刻度线对应位置的数值才会显示。

(3)通过调用实例方法get_xticklabels()来获得Text实例列表xticklabel_text,通过文本Text的参数对应的实例方法来设置x轴的刻度标签的样式,即更新类Text的实例的属性。调整x轴的刻度标签的样式具体包括设置字体类型、改变文本尺寸、文本渲染类型和文本旋转角度。

需要补充的是,实例方法margins(m)可以调整数据范围的空白区域,也就是说,m倍的数据区间会被添加到原来数据区间的两端。数据范围的空白区域的调整类型既包括x轴的数据区间,也包括y轴的数据区间,参数m的取值范围是开区间( 0.5,+ )内的浮点数。例如,如果数据区间是[0,2],那么参数m=0.2就会将原来的数据区间变成[ 0.4,2.4],数据范围的空白区域增加了。如果参数 m在开区间( 0.5,0)内取值,那么原来的数据区间就会被剪切,即原来的数据范围的空白区域会缩小。例如,参数m= 0.2,数据区间[0,2]就会变成[0.4,1.6],即数据区间[0,2]的两端会被去掉0.4个单位长度,数据范围的空白区域被削减了。实例方法margins(m,n)中的参数m和n分别用于调整x轴和y轴的数据范围的空白区域。当然,也可以分别通过实例方法set_xmargin()和set_ymargin()调整x轴和y轴的数据范围的空白区域。因此,实例方法margins()的实质作用就是通过调整坐标轴的数据范围,来调整绘图区域里的图形之外的空白区域的大小。

展开阅读全文

页面更新:2024-03-08

标签:刻度   数值   位置   区间   实例   空白   区域   参数   方法   动态   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top