matplotlib.pyplot库函数关于坐标轴显示的支持

本文介绍了在Python的matplotlib.pyplot库中设置坐标轴显示范围的方法,包括plt.axis(), plt.xlim(), plt.ylim(), plt.xticks(), plt.yticks()等函数的用法。详细解释了这些函数如何相互影响以及如何定义坐标轴的显示范围,强调了显示范围与实际函数取值范围的区别。" 111439206,9620343,排序算法在招生录取问题中的应用,"['算法', '排序算法', 'Java', '数据结构']
部署运行你感兴趣的模型镜像

在使用Python的matplotlib绘图时,有时候会需要设置坐标轴,有几种方法可以提供支持。

以下简称matplotlib.pyplot为plt

函数描述
plt.axis([x_start, x_end, y_start, y_end])设置当前x轴和y轴的范围

plt.xlim(x_start, x_end)

设置当前x轴的范围
plt.ylim(y_start, y_end)

设置当前y轴的范围

plt.xticks(array,‘a’,'b','c')

设置当前x轴刻度位置的标签和值

plt.yticks(array,'a','b','c')设置当前y轴刻度位置的标签和值
plt.xlabel(s)设置当前x轴的标签
plt.ylabel(s)设置当前y轴的标签
举例函数代码:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
x = np.linspace(0, 6, 100)
y = np.cos(x)
plt.plot(x, y, 'r')
plt.show()


以上图余弦函数为例,x的定义域为[0,6],y的值域为[-1,1]

下面来详细说明每个函数的用法


1.plt.axis()   定义横坐标和纵坐标显示范围,效果展示如下

plt.axis([1, 5, -0.5, 0.5])    #x的显示范围定为1~5,y的显示范围定为-0.5~0.5


2.plt.xlim/plt.ylim()    定义横坐标(纵坐标)显示范围,效果展示如下

plt.xlim(1,5)        #x的显示范围定为1~5

plt.ylim(-0.5,0.5)        #y的显示范围定为-0.5~0.5


3.plt.xticks/plt.yticks   设置当前x轴(y轴)对应刻度的标签

#在x轴Π/3,2Π/3,Π,4Π/3,5Π/3对应刻度加上对应值的标签
plt.xticks([np.pi/3, 2*np.pi/3, 3*np.pi/3, 4*np.pi/3, 5*np.pi/3], ['$\pi/3$', '$2\pi/3$', '$\pi$', '$4\pi/3$', '$5\pi/3$'])
#在y轴-1,0,1刻度上加上自定义标签
plt.yticks([-1,0,1],['$min$','$zero$','$max$'])

plt.xticks([])  #不加参数则可以取消坐标轴所有标签
plt.yticks([])

matplotlib绘图默认不支持中文,如果需要对中文的支持请添加以下语句:

#字体可以自己设定,这里采用楷体
matplotlib.rcParams['font.family'] = 'KaiTi' 
matplotlib.rcParams['font.sans-serif'] = ['KaiTi']

4.当以上几个方法同时出现,显示范围会如何呢?来看下面代码:

plt.xlim(1,5)   #x的范围是1~5
plt.axis([0, 4, -1, 0])  #x的范围是0-4,y的范围是-1~0
plt.ylim(-0.5,0.5)   #y的范围是-0.5,0.5

可以发现,最后x的显示范围是0~4,y的显示范围是-0.5~0.5。

也就是说xlim()/ylim()和axis()可以相互覆盖,最后显示的坐标轴范围取决于两者执行的顺序。


那如果加上xticks()/yticks()呢?

plt.xlim(1,4)   #x的范围是1-4
plt.xticks([1, 3, 5],   ['$one$','$three$','$five$'])   #x的标签刻度值是1,3, 5

plt.xticks([1, 3, 5],  ['$one$','$three$','$five$'])   #x的标签刻度值是1, 3, 5
plt.xlim(1,4)   #x的范围是1-4

同样的,依旧是方法的互相覆盖,取决于真正执行的顺序。


5.函数实际x、y的范围和绘图中x、y显示的范围是不一样的概念

函数实际x、y的范围是根据x和y的定义域和值域决定的,而在绘图中x和y轴显示范围是通过plt提供的上述方法规定的。

plt.axis([0, 10, -2, 2])   #x显示范围是0~10,y轴显示范围是-2~2

根据咱们的定义,x的定义域是[0,6],值域是[-1,1]。

而咱们只是显式定义了坐标轴的显示范围,这是不同于函数的实际取值范围的。


总结:

  • 需要同时设定x轴和y轴的显示范围,采用axis()
  • 单独设定x轴或y轴的显示范围,用xlim()/ylim()
  • 想在x轴或y轴上某一特定刻度添加标签,用xticks()或yticks()
  • 给x轴或y轴添加标签,用xlabel()或ylabel()
  • 以上几个方法同时调用时,坐标轴的实际显示范围取决于各函数的执行顺序
  • 以上方法只改变了坐标轴的显示范围,并不影响函数

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值