学习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 __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
理解Python中的类与实例
Apr 27 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
python删除本地夹里重复文件的方法
Nov 19 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
python xlwt模块的使用解析
Apr 13 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
PHP中设置时区方法小结
2012/06/03 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
Seajs的学习笔记
2014/03/04 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
2016/12/15 Javascript
vue写一个组件
2018/04/09 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
Python程序设计入门(3)数组的使用
2014/06/16 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Python File readlines() 使用方法
2018/03/19 Python
python3实现名片管理系统
2020/11/29 Python
python扫描线填充算法详解
2020/02/19 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
strstr()的简单实现
2013/09/26 面试题
妇产科护士自我鉴定
2013/10/15 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
环保建议书范文
2015/09/14 职场文书