龙空技术网

Python数据可视化Matplotlib,坐标轴刻度线定位——对数定位法

matplotlib小讲堂 106

前言:

眼前同学们对“坐标轴刻度生成算法”都比较关切,姐妹们都想要知道一些“坐标轴刻度生成算法”的相关知识。那么小编也在网摘上收集了一些有关“坐标轴刻度生成算法””的相关资讯,希望朋友们能喜欢,各位老铁们快快来了解一下吧!

Matplotlib中用于刻度线的对数定位实际上并不需要我们特意去设置,我们只需要根据软妹子带你玩转Python数据可视化,坐标轴刻度比例尺自定义一文中介绍的方法将坐标轴比例尺设置为'log'、'logit'、'symlog'就行了。

其中,比例尺中的'log'对应的刻度线定位方法为LogLocator;

'symlog'对应的定位方法为SymmetricalLogLocator;

'logit'对应LogitLocator。

当我们对自动生成的刻度线位置不满意时,我们可以通过这些方法进行进一步的自定义。

由于SymmetricalLogLocator和LogitLocator两种方法的自定义在比例尺自定义中均可实现,所以不再讲述。

LogLocator

该方法可用于直角坐标系以及极坐标中极径的设置。

它主要有四个参数:

base:底数,参数值类型为浮点数,默认值为10.0;

subs:倍数,参数值类型为浮点数列表,默认值为(1.0,);

numdecs:极坐标中刻度线个数,参数值类型为整数,默认值分别为4。

numticks:直角坐标系中刻度线数,参数值类型为整数,默认值分别为9。

该方法定位原理为,首先根据base和subs的值,在数值为subs[j]*base**i的位置上初定j组刻度线。如

坐标轴范围为(0.1,100),base = 10, subs = (1.0, 2.0)

刻度线初定两组位置为:1*10**-1,2*10**-1,1*10**0,2*10**0,1*10*1,2*10**1,1*10**2

然后再根据刻度线个数参数,确定显示每组初定刻度线中的哪些。

对于确定刻度线个数的参数,numdecs可准确的控制极坐标中的刻度线个数,当数值大于等于每组初定的刻度线时,显示所有初定刻度线,当刻度线数小于每组初定刻度线数时,从数值最大处开始显示numdecs个刻度线。

numticks值并不能准确控制每组刻度线个数,程序会根据该值做适当的调整使得显示的刻度线均匀分布。

我们结合下图来看一下numticks值与刻度线个数之间的关系。

坐标轴的范围为0.01到10**10,分别以10000、1000、100、10为底,可将该范围分为3、4、6、12个小区间。

通过图像我们可以看出numticks值与小区间个数nbins的关系更为清晰。

当numticks值在[nbins0, nbins1)范围内时,显示nbins0个区间。

文中两图源代码

numdecs

numticks

头条号:matplotlib小讲堂,一个专注于Python数据可视化库matplotlib技术分享的专业自媒体账号。

期待您的关注!

标签: #坐标轴刻度生成算法 #python plt 坐标轴 #python设置坐标轴刻度 #python 坐标轴刻度 #python中取对数