一、plt.xlim / plt.ylim / plt.xticks / plt.yticks
适用 matplotlib,xlim/ylim 控制坐标范围;xticks/yticks 控制刻度位置 + 刻度文字
1. plt.xlim(left, right)
设置X 轴的显示范围,只决定图能看到哪一段,不改变刻度标记。
plt.xlim(0,10) # X轴从0显示到10
plt.xlim(left=0, right=10)
- 特点:只是 "可视窗口",超出范围的数据会被截断看不见。
- 等价于 ax.set_xlim ()(面向对象 Axes 写法)
2. plt.ylim(bottom, top)
设置Y 轴显示范围
plt.ylim(20, 80) # Y轴下限20,上限80
3. plt.xticks(ticks, labels)
设置 X 轴刻度位置 + 刻度文字
-
ticks:刻度在坐标轴上的坐标值(在哪打点) -
labels:对应位置显示的文字(可选,不写就直接显示数字)在1,2,3,4位置打上刻度,文字是["周一","周二","周三","周四"]
plt.xticks([1,2,3,4], ["周一","周二","周三","周四"])
旋转文字防止重叠
plt.xticks(rotation=45)
4. plt.yticks(ticks, labels)
Y 轴刻度,用法同 xticks
plt.yticks([0,20,40,60,80], ["0℃","20℃","40℃","60℃","80℃"])
核心对比
表格
| 函数 | 作用 |
|---|---|
| xlim / ylim | 坐标轴可见区间(看多大范围) |
| xticks / yticks | 坐标轴刻度标记(在哪显示什么文字) |
⚠️ 易错考点:
- 改
xticks不会改变坐标轴范围 ;改xlim不会新增刻度。- ticks 数组 和 labels 数组长度必须一样,否则报错。
- 面向对象写法(Axes):
ax.set_xlim()、ax.set_xticks()、ax.set_xticklabels()
完整演示代码(带中文)
python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x = np.arange(1,5)
y = [12,25,18,30]
plt.plot(x,y,marker='o')
# 设置坐标轴范围
plt.xlim(0,5)
plt.ylim(0,35)
# 设置刻度位置和标签
plt.xticks([1,2,3,4],["周一","周二","周三","周四"])
plt.yticks([0,10,20,30],["0","10","20","30"])
plt.title("xlim ylim xticks yticks演示")
plt.show()
Axes 写法(你前面学的 fig.add_axes 配套写法)
python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x = np.arange(1,5)
y = [12,25,18,30]
fig = plt.figure(figsize=(6,4))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
ax.plot(x,y,marker='o')
ax.set_xlim(0,5)
ax.set_ylim(0,35)
ax.set_xticks([1,2,3,4,5])
ax.set_xticklabels(["周一","周二","周三","周四",'周五'])
ax.set_yticks([0,10,20,30,40])
ax.set_yticklabels(["0","10","20","30",'40'])
plt.show()

二、Matplotlib 控制坐标轴刻度(核心知识点)
两个核心:刻度位置 、刻度显示文字;配套还有坐标范围。 分两种写法:pyplot 简写(plt.xxx) 和 Axes 面向对象写法(推荐,子图用)
一、核心函数汇总
表格
| 功能 | plt 写法 | Axes 写法(子图推荐) | 作用 |
|---|---|---|---|
| 设置刻度位置 | plt.xticks(ticks) |
ax.set_xticks(ticks) |
规定在哪些坐标点画刻度线 |
| 设置刻度标签文字 | plt.xticks(ticks,labels) |
ax.set_xticklabels(labels) |
给刻度位置换成自定义文字(中文、日期、单位) |
| 坐标显示范围 | plt.xlim(min,max) |
ax.set_xlim(min,max) |
控制坐标轴可见区间,不新增刻度 |
| 刻度文字旋转 | plt.xticks(rotation=角度) |
ax.tick_params(axis='x',rotation=角度) |
防止文字重叠 |
| 修改刻度大小 / 颜色 | plt.tick_params() |
ax.tick_params() |
刻度线、刻度文字样式 |
二、关键区分(考试高频)
-
set_xticks:决定刻度打在哪 只填数字,代表坐标轴上的点位
ax.set_xticks([1,2,3,4]) # 在x=1、2、3、4这几个位置生成刻度 -
set_xticklabels:决定这个位置显示什么字 列表长度必须和 set_xticks 完全一致!
ax.set_xticklabels(["第1周","第2周","第3周","第4周"])
❗易错点:只写标签不设置 ticks 会错位;标签数量和刻度数量不一致直接报错。
三、tick_params 调整刻度样式
# x轴刻度,文字旋转45度,文字大小10
ax.tick_params(axis="x", rotation=45, labelsize=10)
# y轴刻度,刻度线设为红色
ax.tick_params(axis="y", color="red")
四、完整演示代码(Axes 子图,带中文)
python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
fig = plt.figure(figsize=(7,5))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
x = np.arange(1,5)
y = [15,28,22,35]
ax.bar(x,y)
# 1.坐标轴范围
ax.set_xlim(0,5)
ax.set_ylim(0,40)
# 2.设置刻度位置
ax.set_xticks([1,2,3,4])
ax.set_yticks([0,10,20,30,40])
# 3.设置刻度文字
ax.set_xticklabels(["周一","周二","周三","周四"])
ax.set_yticklabels(["0","10℃","20℃","30℃","40℃"])
# 4.刻度样式:x文字旋转
ax.tick_params(axis="x",rotation=30)
ax.set_title("坐标轴刻度控制演示")
plt.show()

五、考点小结
xlim/ylim:看的范围,不生成刻度xticks(plt)/set_xticks(ax):刻度位置set_xticklabels:刻度显示文字- tick_params:调整刻度线、字体大小、旋转角度
