学习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 文件和输入输出小结
Oct 09 Python
Python with的用法
Aug 22 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
python解析yaml文件过程详解
Aug 30 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
解决python gdal投影坐标系转换的问题
Jan 17 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
用python对oracle进行简单性能测试
Dec 05 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
对Session和Cookie的区分与解释
2007/03/16 PHP
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
JsDom 编程小结
2011/08/09 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
详解JS预解析原理
2020/06/16 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
python修改注册表终止360进程实例
2014/10/13 Python
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
Python smallseg分词用法实例分析
2015/05/28 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
python 变量初始化空列表的例子
2019/11/28 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
名词解释型面试题(主要是网络)
2013/12/27 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
敬老院活动总结
2014/04/28 职场文书
药店营业员岗位职责
2015/04/14 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫