学习python中matplotlib绘图设置坐标轴刻度、文本


Posted in Python onFebruary 07, 2018

总结matplotlib绘图如何设置坐标轴刻度大小和刻度。

上代码:

from pylab import * 
from matplotlib.ticker import MultipleLocator, FormatStrFormatter 
xmajorLocator  = MultipleLocator(20) #将x主刻度标签设置为20的倍数 
xmajorFormatter = FormatStrFormatter('%1.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 = arange(0.0, 100.0, 1) 
s = sin(0.1*pi*t)*exp(-t*0.01) 
ax = subplot(111) #注意:一般都在ax中设置,不再plot中设置 
plot(t,s,'--b*') 
#设置主刻度标签的位置,标签文本的格式 
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坐标轴的网格使用次刻度 
 
show()

绘图如下:

学习python中matplotlib绘图设置坐标轴刻度、文本

如果仔细看代码,可以得知,设置坐标轴刻度和文本主要使用了"MultipleLocator"、"FormatStrFormatter"方法。

这两个方法来自matplotlib安装库里面ticker.py文件;"MultipleLocator(Locator)"表示将刻度标签设置为Locator的倍数,"FormatStrFormatter"表示设置标签文本的格式,代码中"%1.1f"表示保留小数点后一位,浮点数显示。

相应的方法还有:

学习python中matplotlib绘图设置坐标轴刻度、文本

除了以上方法,还有另外一种方法,那就是使用xticks方法(yticks,x,y表示对应坐标轴),xticks用法可在python cmd下输入以下代码查看:

import matplotlib.pyplot as plt 
help(plt.xticks)

代码如下:

import numpy as np 
import matplotlib.pyplot as plt 
fig,ax = plt.subplots() 
x = [1,2,3,4,5] 
y = [0,2,5,9,15] 
#ax is the axes instance 
group_labels = ['a', 'b','c','d','e'] 
plt.plot(x,y) 
plt.xticks(x, group_labels, rotation=0) 
plt.grid() 
plt.show()

绘图如下:

学习python中matplotlib绘图设置坐标轴刻度、文本

上图中使用了"plt.xticks"方法设置x轴文本,标签文本使用group_labels中的内容,因此可以根据需要修改group_labels中的内容。

网上看到的另一种方法,代码如下:

import matplotlib.pyplot as pl 
import numpy as np 
from matplotlib.ticker import MultipleLocator, FuncFormatter 
x = np.arange(0, 4*np.pi, 0.01) 
y = np.sin(x) 
pl.figure(figsize=(10,6)) 
pl.plot(x, y,label="$sin(x)$") 
ax = pl.gca() 
 
def pi_formatter(x, pos): 
  """ 
  比较罗嗦地将数值转换为以pi/4为单位的刻度文本 
  """ 
  m = np.round(x / (np.pi/4)) 
  n = 4 
  if m%2==0: m, n = m/2, n/2 
  if m%2==0: m, n = m/2, n/2 
  if m == 0: 
    return "0" 
  if m == 1 and n == 1: 
    return "$\pi$" 
  if n == 1: 
    return r"$%d \pi$" % m 
  if m == 1: 
    return r"$\frac{\pi}{%d}$" % n 
  return r"$\frac{%d \pi}{%d}$" % (m,n) 
 
# 设置两个坐标轴的范围 
pl.ylim(-1.5,1.5) 
pl.xlim(0, np.max(x)) 
 
# 设置图的底边距 
pl.subplots_adjust(bottom = 0.15) 
 
pl.grid() #开启网格 
 
# 主刻度为pi/4 
ax.xaxis.set_major_locator( MultipleLocator(np.pi/4) ) 
 
# 主刻度文本用pi_formatter函数计算 
ax.xaxis.set_major_formatter( FuncFormatter( pi_formatter ) ) 
 
# 副刻度为pi/20 
ax.xaxis.set_minor_locator( MultipleLocator(np.pi/20) ) 
 
# 设置刻度文本的大小 
for tick in ax.xaxis.get_major_ticks(): 
  tick.label1.set_fontsize(16) 
 
pl.legend() 
pl.show()

绘图如下:

学习python中matplotlib绘图设置坐标轴刻度、文本

以上就是本次小编整理的全部内容,感谢你对三水点靠木的支持。

Python 相关文章推荐
python之模拟鼠标键盘动作具体实现
Dec 30 Python
以一段代码为实例快速入门Python2.7
Mar 31 Python
Python实现以时间换空间的缓存替换算法
Feb 19 Python
python语言使用技巧分享
May 31 Python
Python callable()函数用法实例分析
Mar 17 Python
pandas string转dataframe的方法
Apr 11 Python
python实现简易学生信息管理系统
Apr 05 Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
keras多显卡训练方式
Jun 10 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 #Python
python OpenCV学习笔记直方图反向投影的实现
Feb 07 #Python
Python实现上下班抢个顺风单脚本
Feb 07 #Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 #Python
Python实现抢购IPhone手机
Feb 07 #Python
浅谈python可视化包Bokeh
Feb 07 #Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 #Python
You might like
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
destoon复制新模块的方法
2014/06/21 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
原生js+css调节音量滑块
2020/01/15 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
python将unicode转为str的方法
2017/06/21 Python
Django csrf 验证问题的实现
2018/10/09 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
大学生表扬信范文
2014/01/09 职场文书
英文求职信写作小建议
2014/02/16 职场文书
会员活动策划方案
2014/08/19 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
python 三边测量定位的实现代码
2021/04/22 Python