python画图设置坐标轴刻度_[python数据自动化处理]python 用 matplotlib画图时设定x/y轴坐标主刻度及次要刻度的方法...

最近在做相关数据自动化和处理分析,个人觉得python在这方面,配合一些数据分析和作图工具包(matplotlib, googlechart,pychart等等),实现自动化分析还是非常强大的,也很容易入门和上手,以自动化代替人手工去分析极大提升办事效率这也是一件非常有意义的事情

后面会陆陆续续将python自动化分析和画图方面的东东整理记录下来,这也是不断积累的过程,希望有所沉淀

【背景:基于python脚本做海量数据自动化分析时,基于数据画图分析成为一种更直观的方式,但当数据多时,坐标显示的刻度需要控制以使图形显示和分析更直观和清晰】

28201407-c22cd1c97d63494bbb18789487b9d401.jpg

这幅数据x坐标显示的刻度有点问题,当数据越来越多时,若坐标主刻度间隔未得到合理控制,x坐标上数据显示会越来越乱,如图中红线圈点的数据。

按照matplotlib官方document中的用法,对 x axis/ y axis坐标刻度间隔的控制可以基于 matplotlib.ticker里的 MultipleLocator /FormatStrFormatter模块来控制,具体实现及其效果见下:

【matplotlib 关于坐标由axis的详细document 说明请参考 链接: http://matplotlib.org/api/axis_api.html】

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#---------------------------------------------------

#演示MatPlotLib中设置坐标轴主刻度标签和次刻度标签.

#对于次刻度显示,如果要使用默认设置只要matplotlib.pyplot.minorticks_on()

#---------------------------------------------------

from pylab import *

from matplotlib.ticker import MultipleLocator

from matplotlib.ticker import FormatStrFormatter

#---------------------------------------------------

#将x主刻度标签设置为20的倍数(也即以 20为主刻度单位其余可类推)

xmajorLocator = MultipleLocator(20);

#设置x轴标签文本的格式

xmajorFormatter = FormatStrFormatter('%3.1f')

#将x轴次刻度标签设置为5的倍数

xminorLocator = MultipleLocator(5)

#设定y 轴的主刻度间隔及相应的刻度间隔显示格式

#将y轴主刻度标签设置为1.0的倍数

ymajorLocator = MultipleLocator(1.0)

#设置y轴标签文本的格式

ymajorFormatter = FormatStrFormatter('%1.1f')

#将此y轴次刻度标签设置为0.2的倍数

yminorLocator = MultipleLocator(0.2)

t = arange(1.0, 100.0, 1)

s=t*exp(-t*1.3)+2*sqrt(t)

#注意:一般都在ax中设置,不再plot中设置

ax = subplot(111)

plot(t,s,'--r*')

#设置主刻度标签的位置,标签文本的格式

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()

##########################################################

【附画出来的坐标图形格式效果】

28202200-8ef8f1145511494583ee7fea0908b1f5.png

另附经过 添加主刻度单位和标识限制之后画出来的图形(x axis 这次清晰了很多:))

28202253-c843b416e1a7418b911979d6fec16745.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值