学习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 socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
python实现批量修改文件名代码
Sep 10 Python
matplotlib绘制动画代码示例
Jan 02 Python
Python变量赋值的秘密分享
Apr 03 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
解决Pytorch中关于model.eval的问题
May 22 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操作JSON格式数据的实现代码
2011/12/24 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
Smarty3配置及入门语法
2017/02/22 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
javascript测试题练习代码
2012/10/10 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
vue实现评价星星功能
2020/06/30 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
python素数筛选法浅析
2018/03/19 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
linux面试相关问题
2012/08/11 面试题
数控专业大学生的自我鉴定
2013/11/13 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
国企干部对照检查材料
2014/08/22 职场文书
关于教师节的广播稿
2015/08/19 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL