主刻度、副刻度的设置

计算副刻度位置的对象默认为NullLocator

      计算主刻度位置的对象默认为AutoLocator,根据当前的缩放自动计算刻度的位置


设置x轴的主刻度为pi/4的倍数,副刻度为pi/20的倍数,并且主刻度的标签用数学符号的pi显示:

import numpy
import matplotlib
import matplotlib.pyplot as plt
from fractions import Fraction
from matplotlib.ticker import MultipleLocator,FuncFormatter
x=numpy.arange(0,4*numpy.pi,0.01)
fig,ax=plt.subplots(figsize=(8,4))
plt.plot(x,numpy.sin(x),x,numpy.cos(x))
#主刻度文本的计算
def pi_formatter(x,pos):
    frac=Fraction(int(numpy.round(x/(numpy.pi/4))),4)
    d,n=frac.denominator,frac.numerator
    if frac==0:
        return '0'
    elif frac==1:
        return '$\pi$'
    elif d==1:
        return r'$%d \pi$'%n
    elif n==1:
        return r'$\frac{\pi}{%d}$'%d
    return r'$\frac{%d \pi}{%d}$'%(n,d)

#设置两坐标轴的范围
plt.xlim(0,numpy.max(x))
plt.ylim(-1.5,1.5)

#设置图的底边距
plt.subplots_adjust(bottom=0.15)

#开启网格
plt.grid()

#设置主刻度位置为pi/4的整数倍
ax.xaxis.set_major_locator(MultipleLocator(numpy.pi/4))
#副刻度位置为pi/20的整数倍
ax.xaxis.set_minor_locator(MultipleLocator(numpy.pi/20))

#刻度文本用pi_formatter计算
ax.xaxis.set_major_formatter(FuncFormatter(pi_formatter))

#主刻度文本大小
for label in ax.xaxis.get_ticklabels():
    label.set_fontsize(16)


刻度线定位及刻度文本的设置都在matplotlib.ticker模板中:

MultipleLocator:以指定值的整数倍为刻度线的放置位置

FuncFormatter:以指定的函数计算刻度文本

                              它会将刻度值与刻度序号作为参数传递,返回与刻度值对应的刻度文本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值