matplotlib刻度设置详解

今天给大家总结一下matplotlib绘图时如何设置刻度,希望对正在学习matplotlib的同学有帮助。

Tick locating and formatting

该模块包括许多类以支持完整的刻度位置和格式的配置。尽管 locators 与主刻度或小刻度没有关系,他们经由 Axis 类使用来支持主刻度和小刻度位置和格式设置。一般情况下,刻度位置和格式均已提供,通常也是最常用的形式。

默认格式

当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 以在全局上关闭,或者设置不同的格式。

刻度位置

Locator 类是所有刻度 Locators 的基类。 locators 负责根据数据的范围自动调整视觉间隔,以及刻度位置的选择。 MultipleLocator 是一种有用的半自动的刻度 Locator。 你可以通过基类进行初始化设置等等。

Locator 子类定义如下:


NullLocator


No ticks


FixedLocator


Tick locations are fixed


IndexLocator


locator for index plots (e.g., where x = range(len(y)))


LinearLocator


evenly spaced ticks from min to max


LogLocator


logarithmically ticks from min to max


SymmetricalLogLocator


locator for use with with the symlog norm, works like the LogLocator for the part outside of the threshold and add 0 if inside the limits


MultipleLocator


ticks and range are a multiple of base;either integer or float


OldAutoLocator


choose a MultipleLocator and dyamically reassign it for intelligent ticking during navigation


MaxNLocator


finds up to a max number of ticks at nice locations


AutoLocator


MaxNLocator with simple defaults. This is the default tick locator for most plotting.


AutoMinorLocator


locator for minor ticks when the axis is linear and the major ticks are uniformly spaced. It subdivides the major tick interval into a specified number of minor intervals, defaulting to 4 or 5 depending on the major interval.

你可以继承 Locator 定义自己的 locator。 你必须重写 ___call__ 方法,该方法返回位置的序列,你可能也想重写 autoscale 方法以根据数据的范围设置视觉间隔。

如果你想重写默认的locator,使用上面或常用的locator任何一个, 将其传给 x 或 y axis 对象。相关的方法如下:

ax.xaxis.set_major_locator( xmajorLocator )ax.xaxis.set_minor_locator( xminorLocator )ax.yaxis.set_major_locator( ymajorLocator )ax.yaxis.set_minor_locator( yminorLocator )

刻度格式

刻度格式由 Formatter 继承来的类控制。 formatter仅仅作用于单个刻度值并且返回轴的字符串。
相关的子类请参考官方文档。

同样也可以通过重写 __all__ 方法来继承 Formatter 基类以设定自己的 formatter。

为了控制主刻度或小刻度标注的格式,使用下面任一方法:

ax.xaxis.set_major_formatter( xmajorFormatter )ax.xaxis.set_minor_formatter( xminorFormatter )ax.yaxis.set_major_formatter( ymajorFormatter )ax.yaxis.set_minor_formatter( yminorFormatter )

设置刻度标注

原型举例:

set_xticklabels(labels, fontdict=None, minor=False, **kwargs)

综合举例(1)如下:

设置指定位置的标注更改为其他的标注:

...

plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],

[r’$-\pi$’, r’$-\pi/2$’, r’$0$’, r’$+\pi/2$’, r’$+\pi$’])

plt.yticks([-1, 0, +1],

[r’$-1$’, r’$0$’, r’$+1$’])

...

综合举例(2)如下:

设置坐标轴主刻度和次刻度。

#!/usr/bin/env python#-*- coding: utf-8 -*- #---------------------------------------------------#演示MatPlotLib中设置坐标轴主刻度标签和次刻度标签.

#对于次刻度显示,如果要使用默认设置只要matplotlib.pyplot.minorticks_on()

#---------------------------------------------------

import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.ticker import MultipleLocator, FormatStrFormatter

#---------------------------------------------------

xmajorLocator   = MultipleLocator(20) #将x主刻度标签设置为20的倍数

xmajorFormatter = FormatStrFormatter(’%5.1f’) #设置x轴标签文本的格式

xminorLocator   = MultipleLocator(5) #将x轴次刻度标签设置为5的倍数

ymajorLocator   = MultipleLocator(0.5) #将y轴主刻度标签设置为0.5的倍数

ymajorFormatter = FormatStrFormatter(’%1.1f’) #设置y轴标签文本的格式

yminorLocator   = MultipleLocator(0.1) #将此y轴次刻度标签设置为0.1的倍数

t = np.arange(0.0, 100.0, 1)

s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01)

ax = plt.subplot(111) #注意:一般都在ax中设置,不再plot中设置

plt.plot(t,s,’--r*’)

#设置主刻度标签的位置,标签文本的格式

ax.xaxis.set_major_locator(xmajorLocator)

ax.xaxis.set_major_formatter(xmajorFormatter)

ax.yaxis.set_major_locator(ymajorLocator)

ax.yaxis.set_major_formatter(ymajorFormatter)

#显示次刻度标签的位置,没有标签文本

ax.xaxis.set_minor_locator(xminorLocator)

ax.yaxis.set_minor_locator(yminorLocator)

ax.xaxis.grid(True, which=’major’) #x坐标轴的网格使用主刻度

ax.yaxis.grid(True, which=’minor’) #y坐标轴的网格使用次刻度

plt.show()

##########################################################

图像形式如下:

文章来自:博客园/Chris*Chen

时间: 2024-10-14 14:10:01

matplotlib刻度设置详解的相关文章

格式设置详解

AxureRP 6.0以前版本的格式设置都是在右键菜单里面的,不是很方便操作,6.0版本将这个功能分到右侧面板里面,并且增加了页面级的格式设置,大大方便了操作设 置,包括增加了对手绘风格格式的默认支持,再也不需要通过加载额外的手绘组件库来完成了.AxureRP的组件和页面级的格式设置,其实就是网页设计当中 的CSS代码,只不过用图形界面实现了,这样更直观,也更好掌握,毕竟不是所有的产品设计人员都懂CSS的. 这里介绍一下各种格式设置,其实大家如果用中文版的话,是比较一目了然的,虽然汉化包里面广告

JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLASSPATH.PATH.下面逐个分析. JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin.lib等目录.值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX

[转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

[转] JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 - dreamman的日志 - 网易博客http://blog.163.com/dreamman_yx/blog/static/26526894200842414338201/ Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLASSPATH.PATH.下面逐个分析. JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin.lib等目录.

AWARDBIOS设置详解

Phoenix–AwardBIOSv6.00PG AWARDBIOS设置详解 AWARD公司是世界最大的BIOS生产厂商之一,其产品也被广泛使用.但由于AWARD BIOS里面的信息都是基于英文且需要用户对相关专业知识的理解相对深入,使得普通用户设置起来感到困难很大.而如果这些设置不当的话,将会影响整台电脑的性能设置是不能正常使用,所以一份详细的设置说明是必要的.下面就介绍一下AWARD BIOS中的有关设置选项的含义和设置方法. 一.[StandardCMOS Setup](标准设定) 在本菜

黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户、主题、插件、设置等功能

建立好了子站,我们需要有个地方配置所有子站的主题.插件等功能,我们可以在后台看到 我的站点--管理网络 如下图: 在 管理网络--仪表盘 里面,我们可以创新用户和站点,也提供了查询功能. 要注意的是:当你新上传的主题或者插件,都需要在管理网络那边的主题和插件里面将你上传的主题和插件开启.这样才可以在你的子站点中查看的到. 黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户.主题.插件.设置等功能

VM网络连接设置详解

参考http://zhidao.baidu.com/link?url=NU8UcLsp6CCgRZzeMgnb7v0p7Z78eLYloYW355Z9fQa__pm_lFBtpfSs61ZR2Wq2yX1ljRrgiP2NGOccH_CttK 桥接 通过使用物理机网卡 具有独立ip NAT 把物理机作为路由器进行上网 host-only 只能与物理机相连 下面是详细的解说 VMWare提供了三种工作模式,它们是bridged(bridged模式).NAT(网络地址转换模式)和host-only(

【转载】 Eclipse注释模板设置详解

 Eclipse注释模板设置详解 网站推荐: 金丝燕网(主要内容是 Java 相关) 木秀林网(主要内容是消息队列)

Java虚拟机(JVM)中的内存设置详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步. PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance. GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很

StrutsPrepareAndExecuteFilter过滤器和url-pattern设置详解

1.strut 过滤器 FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.! StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.! 这样的改革当然是有好处的.! 为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html! 那我现在有需求