Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020
matplotlib.ticker
¶此模块包含支持完全可配置的标记定位和格式的类。虽然定位器不知道主要刻度或次要刻度,但轴类使用它们来支持主要刻度和次要刻度的定位和格式设置。提供了通用的勾号定位器和格式化程序,以及特定于域的自定义定位器和格式化程序。
默认格式设置工具标识正在绘制的X数据是大偏移集顶部的小范围。为了减少滴答标签重叠的机会,滴答标签被标记为来自固定偏移量的增量。例如::
ax.plot(np.arange(2000, 2010), range(10))
勾号为0-9,偏移量为+2E3。如果不需要,请关闭默认格式设置工具上偏移量的使用:
ax.get_xaxis().get_major_formatter().set_useOffset(False)
设置RCPARAM axes.formatter.useoffset=False
要全局关闭它,或设置其他格式化程序。
定位器类是所有记号定位器的基类。定位器根据数据限制和刻度位置的选择来处理视图限制的自动缩放。一个有用的半自动滴答定位器是 MultipleLocator
. 它是用一个基初始化的,例如10,它选择轴限制和该基的倍数刻度。
这里定义的定位器子类是
AutoLocator
MaxNLocator
使用简单的默认值。这是大多数绘图的默认标记定位器。MaxNLocator
LinearLocator
LogLocator
MultipleLocator
FixedLocator
IndexLocator
x = range(len(y))
)NullLocator
SymmetricalLogLocator
LogLocator
对于超出阈值的部分,如果超出限制,则添加0。LogitLocator
OldAutoLocator
MultipleLocator
并动态重新分配它,以便在导航过程中进行智能勾选。AutoMinorLocator
有许多定位器专门用于日期位置-请参见 dates
模块。
您可以通过从定位器派生来定义自己的定位器。您必须覆盖 __call__
方法,它返回一系列位置,您可能希望重写Autoscale方法以从数据限制中设置视图限制。
如果要覆盖默认定位器,请使用上面的某个定位器或自定义定位器,并将其传递给X或Y轴实例。相关方法如下:
ax.xaxis.set_major_locator(xmajor_locator)
ax.xaxis.set_minor_locator(xminor_locator)
ax.yaxis.set_major_locator(ymajor_locator)
ax.yaxis.set_minor_locator(yminor_locator)
默认的次要定位器是 NullLocator
也就是说,默认情况下没有小的滴答声。
刻度格式由从格式设置工具派生的类控制。格式化程序对单个刻度值进行操作,并将字符串返回到轴。
NullFormatter
IndexFormatter
FixedFormatter
FuncFormatter
StrMethodFormatter
format
方法。FormatStrFormatter
ScalarFormatter
LogFormatter
LogFormatterExponent
exponent = log_base(value)
.LogFormatterMathtext
exponent = log_base(value)
使用数学文本。LogFormatterSciNotation
LogitFormatter
EngFormatter
PercentFormatter
通过简单地重写 __call__
方法。格式化程序类可以访问轴视图和数据限制。
要控制主要和次要刻度线标签格式,请使用以下方法之一:
ax.xaxis.set_major_formatter(xmajor_formatter)
ax.xaxis.set_minor_formatter(xminor_formatter)
ax.yaxis.set_major_formatter(ymajor_formatter)
ax.yaxis.set_minor_formatter(yminor_formatter)
见 主要次要演示 例如设置主要刻度和次要刻度。见 matplotlib.dates
有关使用日期定位器和格式化程序的详细信息和示例的模块。
matplotlib.ticker.
Formatter
[源代码]¶基类:matplotlib.ticker.TickHelper
基于刻度值和位置创建字符串。
fix_minus
(s)[源代码]¶一些类可能希望用适当的Unicode符号(U+2212)替换减号的连字符,以确保排版的正确性。默认情况是不替换它。
注意,如果使用此方法,例如 format_data()
或者打电话,你可能不想用它 format_data_short()
由于工具栏将其用于交互式Coord报告,我怀疑跨平台的GUI能否正确处理Unicode。所以现在,重写的类 fix_minus()
应该有一个明确的 format_data_short()
方法
locs
= []¶matplotlib.ticker.
FixedFormatter
(seq)[源代码]¶基类:matplotlib.ticker.Formatter
仅基于位置而非值返回刻度标签的固定字符串。
设置将用于标签的字符串序列。
matplotlib.ticker.
NullFormatter
[源代码]¶基类:matplotlib.ticker.Formatter
始终返回空字符串。
matplotlib.ticker.
FuncFormatter
(func)[源代码]¶基类:matplotlib.ticker.Formatter
使用用户定义的函数进行格式化。
该功能应接受两个输入(一个刻度值 x
一个职位 pos
,并返回包含相应勾号标签的字符串。
matplotlib.ticker.
FormatStrFormatter
(fmt)[源代码]¶基类:matplotlib.ticker.Formatter
使用旧样式(“%”运算符)格式字符串设置刻度的格式。
格式字符串中应包含单个变量格式(%)。它将应用于勾号的值(而不是位置)。
matplotlib.ticker.
StrMethodFormatter
(fmt)[源代码]¶基类:matplotlib.ticker.Formatter
使用新样式的格式字符串(由 str.format()
)设置勾号格式。
用于该值的字段必须标记 x
用于该位置的字段必须标记 pos
.
matplotlib.ticker.
ScalarFormatter
(useOffset=None, useMathText=None, useLocale=None)[源代码]¶基类:matplotlib.ticker.Formatter
将刻度值格式化为数字。
刻度值被解释为一个普通的旧数字。如果 useOffset==True
数据范围比数据平均值小得多,然后确定偏移量,这样记号标签就有意义了。科学记数法用于 data < 10^-n
或 data >= 10^m
在哪里 n
和 m
功率限制是否使用 set_powerlimits((n,m))
. 这些的默认值由 axes.formatter.limits
钢筋混凝土参数
set_powerlimits
(lims)[源代码]¶设置科学记数法的大小阈值。
参数: |
|
---|
useLocale
¶useMathText
¶useOffset
¶matplotlib.ticker.
LogFormatter
(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]¶基类:matplotlib.ticker.Formatter
用于格式化对数或符号对数刻度刻度的基类。
它可以直接实例化,也可以子类化。
参数: |
|
---|
笔记
这个 set_locs
必须调用方法以启用由 minor_thresholds
参数。
在某些情况下,例如颜色条,主要刻度和次要刻度之间没有区别;刻度位置可以手动设置,也可以由一个定位器设置,该定位器将刻度置于基数的整数倍和中间位置。对于这种情况,使用 minor_thresholds=(np.inf, np.inf)
,以便标记所有刻度。
若要在“LabelOnlyBase”为假时禁用次要刻度的标签,请使用 minor_thresholds=(0, 0)
. 这是“经典”样式的默认设置。
实例
若要在视图限制的范围最长为20年时标记次要刻度的子集,并在放大到0.5年或更小时标记所有刻度,请使用 minor_thresholds=(2, 0.5)
.
若要在视图限制范围最长为1.5年时标记所有小刻度,请使用 minor_thresholds=(1.5, 1.5)
.
base
(base)[源代码]¶改变 base 用于标签。
警告
应始终匹配用于 LogLocator
matplotlib.ticker.
LogFormatterExponent
(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]¶基类:matplotlib.ticker.LogFormatter
使用设置日志轴值的格式 exponent = log_base(value)
.
matplotlib.ticker.
LogFormatterMathtext
(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]¶基类:matplotlib.ticker.LogFormatter
使用设置日志轴值的格式 exponent = log_base(value)
.
matplotlib.ticker.
IndexFormatter
(labels)[源代码]¶基类:matplotlib.ticker.Formatter
将位置x格式化为最接近的i-th标签,其中i=int(x+0.5)
matplotlib.ticker.
LogFormatterSciNotation
(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]¶基类:matplotlib.ticker.LogFormatterMathtext
按照对数轴中的科学符号设置值的格式。
matplotlib.ticker.
LogitFormatter
[源代码]¶基类:matplotlib.ticker.Formatter
概率格式化程序(使用数学文本)。
matplotlib.ticker.
EngFormatter
(unit='', places=None, sep=' ')[源代码]¶基类:matplotlib.ticker.Formatter
使用工程前缀格式化轴值,以表示1000的功率加上指定的单位,例如10兆赫而不是1E7。
参数: |
|
---|
ENG_PREFIXES
= {-24: 'y', -21: 'z', -18: 'a', -15: 'f', -12: 'p', -9: 'n', -6: 'μ', -3: 'm', 0: '', 3: 'k', 6: 'M', 9: 'G', 12: 'T', 15: 'P', 18: 'E', 21: 'Z', 24: 'Y'}¶matplotlib.ticker.
PercentFormatter
(xmax=100, decimals=None, symbol='%', is_latex=False)[源代码]¶基类:matplotlib.ticker.Formatter
将数字格式化为百分比。
参数: |
|
---|