学习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使用urllib2模块获取gravatar头像实例
Dec 18 Python
Python贪心算法实例小结
Apr 22 Python
python Pandas 读取txt表格的实例
Apr 29 Python
python numpy实现文件存取的示例代码
May 26 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
python命令行工具Click快速掌握
Jul 04 Python
pyspark 随机森林的实现
Apr 24 Python
python def 定义函数,调用函数方式
Jun 02 Python
python自定义函数def的应用详解
Jun 03 Python
python字典的值可以修改吗
Jun 29 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 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将两个关联数组合并函数提高函数效率
2014/03/18 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
JS 判断代码全收集
2009/04/28 Javascript
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
python单元测试unittest实例详解
2015/05/11 Python
Python切片知识解析
2016/03/06 Python
python实现简单购物商城
2016/05/21 Python
Python多线程实现同步的四种方式
2017/05/02 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
解决python3运行selenium下HTMLTestRunner报错的问题
2018/12/27 Python
python之yield和Generator深入解析
2019/09/18 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
幼儿园小班评语大全
2014/04/17 职场文书
技校毕业生自荐书
2014/05/23 职场文书
森林防火标语
2014/06/23 职场文书
公司员工离职证明书
2014/10/04 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技