学习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 多线程抓取图片效率对比
Feb 27 Python
python函数的5种参数详解
Feb 24 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
Python中用post、get方式提交数据的方法示例
Sep 22 Python
Python中装饰器高级用法详解
Dec 25 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
python3 enum模块的应用实例详解
Aug 12 Python
Python3安装pip工具的详细步骤
Oct 14 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
Python实战之OpenCV实现猫脸检测
Jun 26 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基础之运算符的使用方法
2013/04/28 PHP
隐性调用php程序的方法
2015/06/13 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
js面向对象的写法
2016/02/19 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
Python正则表达式使用范例分享
2016/12/04 Python
python学生管理系统代码实现
2020/04/05 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
python 下载文件的几种方法汇总
2021/01/06 Python
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
新驾驶员个人自我评价
2014/01/03 职场文书
心得体会范文
2014/01/04 职场文书
初中生评语大全
2014/04/24 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
生态养殖创业计划书
2014/05/06 职场文书
司机工作自我鉴定
2014/09/19 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
我的收音机情缘
2022/04/05 无线电