学习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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
在Django中限制已登录用户的访问的方法
Jul 23 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
python实现机器人行走效果
Jan 29 Python
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
python查看模块,对象的函数方法
Oct 16 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
解决python多行注释引发缩进错误的问题
Aug 23 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 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产生随机字符串函数
2006/12/06 PHP
PHP模板解析类实例
2015/07/09 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
JavaScript中“+=”的应用
2007/02/02 Javascript
javascript调试说明
2010/06/07 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
python中偏函数partial用法实例分析
2015/07/08 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python安装selenium包详细过程
2019/07/23 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
Python通过Pillow实现图片对比
2020/04/29 Python
瑜伽国际:Yoga International
2018/04/18 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
社区工作者演讲稿
2014/05/23 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
民主生活会发言材料
2014/10/20 职场文书
个人委托书范文
2015/01/28 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
python b站视频下载的五种版本
2021/05/27 Python
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers
python神经网络 使用Keras构建RNN训练
2022/05/04 Python