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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matplotlib 刻度线的位置和数值的动态调整相关的知识,希望对你有一定的参考价值。

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

(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()的实质作用就是通过调整坐标轴的数据范围,来调整绘图区域里的图形之外的空白区域的大小。

以上是关于matplotlib 刻度线的位置和数值的动态调整的主要内容,如果未能解决你的问题,请参考以下文章

在 matplotlib imshow 中调整网格线和刻度线

matplotlib中刻度线的方向

matplotlib的基础绘图和调整x轴的刻度

matplotlib可视化去除轴标签轴刻度线和轴刻度数值实战:Axis Text Ticks or Tick Labels

python使用matplotlib可视化自定义设置坐标轴的范围自定义设置主坐标轴刻度和次坐标轴刻度自定义坐标轴刻度的显示样式自定义坐标轴刻度数值的颜色以及小数点位数添加坐标轴刻度网格线

Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式)使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)