学习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 相关文章推荐
pyv8学习python和javascript变量进行交互
Dec 04 Python
教大家使用Python SqlAlchemy
Feb 12 Python
Python图算法实例分析
Aug 13 Python
利用Python开发微信支付的注意事项
Aug 19 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
Python实现自动整理文件的脚本
Dec 17 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中显示数组与对象的实现代码
2011/04/18 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
PHP仿盗链代码
2012/06/03 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python与shell的3种交互方式介绍
2015/04/11 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
python实现红包裂变算法
2016/02/16 Python
python交易记录链的实现过程详解
2019/07/03 Python
Django 自动生成api接口文档教程
2019/11/19 Python
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
大学生的网上创业计划书
2013/12/31 职场文书
个人简历自我评价范文
2014/02/04 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
大学生创业计划书
2014/08/14 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
小学重阳节活动总结
2015/03/24 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
MySQL 条件查询的常用操作
2022/04/28 MySQL
nginx七层负载均衡配置详解
2022/07/15 Servers