Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020

Version 3.1.1
matplotlib
Fork me on GitHub

目录

Related Topics

ticker

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
与symlog规范一起使用的定位器;类似于 LogLocator 对于超出阈值的部分,如果超出限制,则添加0。
LogitLocator
用于逻辑缩放的定位器。
OldAutoLocator
选择一个 MultipleLocator 并动态重新分配它,以便在导航过程中进行智能勾选。
AutoMinorLocator
当轴为线性且主刻度间距均匀时,次要刻度的定位器。将主要刻度间隔细分为指定数量的次要间隔,根据主要间隔默认为4或5。

有许多定位器专门用于日期位置-请参见 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
使用旧样式的sprintf格式字符串。
ScalarFormatter
scalars的默认格式设置工具:自动选择格式字符串。
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 有关使用日期定位器和格式化程序的详细信息和示例的模块。

class matplotlib.ticker.TickHelper[源代码]

基类:object

axis = None
create_dummy_axis(**kwargs)[源代码]
set_axis(axis)[源代码]
set_bounds(vmin, vmax)[源代码]
set_data_interval(vmin, vmax)[源代码]
set_view_interval(vmin, vmax)[源代码]
class 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() 方法

format_data(value)[源代码]

返回未指定位置的值的完整字符串表示形式。

format_data_short(value)[源代码]

返回勾号值的短字符串版本。

默认为位置独立的长值。

get_offset()[源代码]
locs = []
set_locs(locs)[源代码]
class matplotlib.ticker.FixedFormatter(seq)[源代码]

基类:matplotlib.ticker.Formatter

仅基于位置而非值返回刻度标签的固定字符串。

设置将用于标签的字符串序列。

get_offset()[源代码]
set_offset_string(ofs)[源代码]
class matplotlib.ticker.NullFormatter[源代码]

基类:matplotlib.ticker.Formatter

始终返回空字符串。

class matplotlib.ticker.FuncFormatter(func)[源代码]

基类:matplotlib.ticker.Formatter

使用用户定义的函数进行格式化。

该功能应接受两个输入(一个刻度值 x 一个职位 pos ,并返回包含相应勾号标签的字符串。

class matplotlib.ticker.FormatStrFormatter(fmt)[源代码]

基类:matplotlib.ticker.Formatter

使用旧样式(“%”运算符)格式字符串设置刻度的格式。

格式字符串中应包含单个变量格式(%)。它将应用于勾号的值(而不是位置)。

class matplotlib.ticker.StrMethodFormatter(fmt)[源代码]

基类:matplotlib.ticker.Formatter

使用新样式的格式字符串(由 str.format() )设置勾号格式。

用于该值的字段必须标记 x 用于该位置的字段必须标记 pos .

class matplotlib.ticker.ScalarFormatter(useOffset=None, useMathText=None, useLocale=None)[源代码]

基类:matplotlib.ticker.Formatter

将刻度值格式化为数字。

刻度值被解释为一个普通的旧数字。如果 useOffset==True 数据范围比数据平均值小得多,然后确定偏移量,这样记号标签就有意义了。科学记数法用于 data < 10^-ndata >= 10^m 在哪里 nm 功率限制是否使用 set_powerlimits((n,m)) . 这些的默认值由 axes.formatter.limits 钢筋混凝土参数

fix_minus(s)[源代码]

用unicode减号替换连字符。

format_data(value)[源代码]

返回数字的格式化字符串表示形式。

format_data_short(value)[源代码]

返回数字的短格式字符串表示形式。

get_offset()[源代码]

返回科学记数法,加上偏移量。

get_useLocale()[源代码]
get_useMathText()[源代码]
get_useOffset()[源代码]
pprint_val(x)[源代码]
set_locs(locs)[源代码]

设置刻度的位置。

set_powerlimits(lims)[源代码]

设置科学记数法的大小阈值。

参数:
lims : (最小值、最大值)

包含10次幂的元组,用于确定切换阈值。以下数字 10**min_exp 及以上 10**max_exp 将以科学记数法显示。

例如, formatter.set_powerlimits((-3, 4)) 设置2007年以前的默认值,其中科学记数法用于小于1e-3或大于1e4的数字。

.. seealso:: Method :meth:`set_scientific`
set_scientific(b)[源代码]

打开或关闭科学记数法。

参见

方法 set_powerlimits()

set_useLocale(val)[源代码]
set_useMathText(val)[源代码]
set_useOffset(val)[源代码]
useLocale
useMathText
useOffset
class matplotlib.ticker.LogFormatter(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]

基类:matplotlib.ticker.Formatter

用于格式化对数或符号对数刻度刻度的基类。

它可以直接实例化,也可以子类化。

参数:
base : 浮动,可选,默认值:10。

所有计算中使用的对数底。

标记碱基 : bool,可选,默认值:false

如果为真,则标签仅以基数的整数倍刻度。对于主要刻度,这通常是正确的;对于次要刻度,这通常是错误的。

minor_thresholds : (子集,全部),可选,默认:(1,0.4)

如果labelonlybase为false,则这两个数字控制不在基数整数倍的刻度的标签;通常这些是较小的刻度。控制参数是轴数据范围的日志。在典型的情况下,基数是10,它是由轴跨越的几十年,所以我们可以称之为“numdec”。如果 numdec <= all ,将标记所有次要刻度。如果 all < numdec <= subset ,则只会标记一个子集的小刻度,以避免拥挤。如果 numdec > subset 然后不会标记任何次要刻度。

直线加速器 : 无或浮动,可选,默认:无

如果使用对称对数刻度,则其 linthresh 必须在此处提供参数。

笔记

这个 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

format_data(value)[源代码]

返回未指定位置的值的完整字符串表示形式。

format_data_short(value)[源代码]

返回数字的短格式字符串表示形式。

label_minor(labelOnlyBase)[源代码]

打开或关闭小刻度标签。

参数:
标记碱基 : 布尔

如果为真,则标签仅以基数的整数倍刻度。

pprint_val(x, d)[源代码]
set_locs(locs=None)[源代码]

使用轴视图限制控制标记的刻度。

这个 locs 参数在当前算法中被忽略。

class matplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]

基类:matplotlib.ticker.LogFormatter

使用设置日志轴值的格式 exponent = log_base(value) .

class matplotlib.ticker.LogFormatterMathtext(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]

基类:matplotlib.ticker.LogFormatter

使用设置日志轴值的格式 exponent = log_base(value) .

class matplotlib.ticker.IndexFormatter(labels)[源代码]

基类:matplotlib.ticker.Formatter

将位置x格式化为最接近的i-th标签,其中i=int(x+0.5)

class matplotlib.ticker.LogFormatterSciNotation(base=10.0, labelOnlyBase=False, minor_thresholds=None, linthresh=None)[源代码]

基类:matplotlib.ticker.LogFormatterMathtext

按照对数轴中的科学符号设置值的格式。

class matplotlib.ticker.LogitFormatter[源代码]

基类:matplotlib.ticker.Formatter

概率格式化程序(使用数学文本)。

format_data_short(value)[源代码]

返回数字的短格式字符串表示形式

class matplotlib.ticker.EngFormatter(unit='', places=None, sep=' ')[源代码]

基类:matplotlib.ticker.Formatter

使用工程前缀格式化轴值,以表示1000的功率加上指定的单位,例如10兆赫而不是1E7。

参数:
unit : str(默认值:“”

要使用的单位符号,适用于1000次幂的单字母表示。例如,“hz”或“m”。

地方 : int(默认值:无)

显示数字的精度,以小数点后的数字表示(小数点前一到三位数)。如果为“无”,则格式将还原为浮点格式“%g”,最多显示6个 重要的 数字,即 地方 介于0和5之间(包括0和5)。

sep : str(默认值:“”

值和前缀/单位之间使用的分隔符。例如,如果 sep 是“”(默认)和“3.14mV”,如果 sep 是“”。除了默认行为之外,其他一些有用的选项可能是:

  • sep="" 直接将前缀/单位附加到值上;
  • sep="\N{{THIN SPACE}}" (U+2009
  • sep="\N{{NARROW NO-BREAK SPACE}}" (U+202F
  • sep="\N{{NO-BREAK SPACE}}" (U+00A0
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'}
format_eng(num)[源代码]

在工程符号中格式化一个数字,附加一个代表原始数字1000次幂的字母。一些例子:

>>> format_eng(0)       # for self.places = 0
'0'
>>> format_eng(1000000) # for self.places = 1
'1.0 M'
>>> format_eng("-1e-6") # for self.places = 2
'-1.00 μ'
class matplotlib.ticker.PercentFormatter(xmax=100, decimals=None, symbol='%', is_latex=False)[源代码]

基类:matplotlib.ticker.Formatter

将数字格式化为百分比。

参数:
xmax : 浮动

确定如何将数字转换为百分比。 xmax 是对应于100%的数据值。百分比计算为 x / xmax * 100 . 因此,如果数据已经被缩放为百分比, xmax 将是100。另一个常见的情况是 xmax 是1。

小数 : 无或int

小数点后的小数位数。如果 None (默认),该数字将自动计算。

符号 : 字符串或无

将附加到标签的字符串。它可能是 None 或为空,表示不应使用符号。 Latex 特殊字符在 符号 无论何时启用 Latex 模式,除非 is_latexTrue .

is_latex : 布尔

如果 ,保留 Latex 字符 符号 将被逃脱。

convert_to_pct(x)[源代码]
format_pct(x, display_range)[源代码]

将数字格式化为具有正确小数位数的百分比数字,并添加百分比符号(如果有)。

如果 self.decimalsNone ,小数点后的位数根据 display_range 轴的位置如下:

display_range 小数 样品
> 50 0 x = 34.5 = 35%
> 5 1