坐标轴定制是matplotlib中非常重要的一部分,可以帮助我们更好地展示数据。下面是对绘制坐标轴常用到的具体说明
1.获取坐标轴对象
在matplotlib中,我们可以通过以下方式获取坐标轴对象:
ax = plt.gca() # 获取当前坐标轴对象
2.设置坐标轴范围
我们可以使用set_xlim()和set_ylim()方法来设置坐标轴的范围:
- ax.set_xlim(0, 10) # 设置x轴范围为0到10
- ax.set_ylim(0, 20) # 设置y轴范围为0到20
3.设置坐标轴标签
我们可以使用set_xlabel()和set_ylabel()方法来设置坐标轴的标签:
- ax.set_xlabel('x轴标签') # 设置x轴标签
- ax.set_ylabel('y轴标签') # 设置y轴标签
4.设置坐标轴刻度
我们可以使用set_xticks()和set_yticks()方法来设置坐标轴的刻度:
- ax.set_xticks([0, 2, 4, 6, 8, 10]) # 设置x轴刻度
- ax.set_yticks([0, 5, 10, 15, 20]) # 设置y轴刻度
5.设置坐标轴刻度标签
我们可以使用set_xticklabels()和set_yticklabels()方法来设置坐标轴的刻度标签
- ax.set_xticklabels(['0', '2', '4', '6', '8', '10']) # 设置x轴刻度标签
- ax.set_yticklabels(['0', '5', '10', '15', '20']) # 设置y轴刻度标签
6.设置坐标轴位置
我们可以使用spines属性来设置坐标轴的位置:
- ax.spines['right'].set_color('none') # 隐藏右边的坐标轴
- ax.spines['top'].set_color('none') # 隐藏上面的坐标轴
- ax.xaxis.set_ticks_position('bottom') # 将x轴刻度放在下面
- ax.yaxis.set_ticks_position('left') # 将y轴刻度放在左边
- ax.spines['bottom'].set_position(('data', 0)) # 将x轴放在y轴的0位置 ax.spines['left'].set_position(('data', 0)) # 将y轴放在x轴的0位置
7.设置坐标轴样式
我们可以使用tick_params()方法来设置坐标轴的样式:
ax.tick_params(axis='both', direction='in', length=5, width=1, colors='r') # 设置坐标轴样式
接下来让我们做以下题目为例,来演示如何使用这些函数,绘制坐标轴
根据上表的数据绘制一个折线图,具体要求如下:
(1)在距画布顶部0.2、左侧0.2的位置上添加一个宽度为0.5、高度为0.5的绘图区域;
(2)x轴的刻度标签为周日期;
(3)刻度样式调整:方向朝内、宽度为2,长度为8;
(4)隐藏坐标轴的上轴脊、右轴脊。
#导入模块
import numpy as np
import matplotlib.pyplot as plt
#设置外侧中文
plt.rcParams["font.sans-serif"] = ["KaiTi"]
plt.rcParams["axes.unicode_minus"] = False
# 数据
x_data = np.arange(1,8)
y_data = [44.98, 45.02, 44.32, 41.05, 42.08, 42.08, 42.08]
# 画布
fig = plt.figure()
# (1)在距画布顶部0.2,左侧0.2的位置上添加一个宽度为0.5,高度为0.5的绘图区域
ax = fig.add_axes((0.2, 0.2, 0.5, 0.5))
# 绘图
ax.plot(x_data, y_data,
'-o',# 标记和线的类型
ms=8 # 标记的大小
color=purplo #设置颜色为紫色)
#设置y轴标签
ax.set_ylabel('收盘价 (¥)',
fontsize=13.8,#字体大小
rotation=360.,#字体旋转角度
labelpad=28.8)#标签距坐标轴的距离
# 设置x轴标签
# (2) x轴的刻度标签为周日期
x_name = ['周一','周二','周三','周四','周五','周六','周日']
plt.xticks(x_data, x_name, rotation=20)
ax.set_xlabel('周日期',
fontsize=13.8,#字体大小
labelpad=14.8)#标签距坐标轴的距离)
# 刻度线样式调整
# (3)刻度样式调整:方向朝内,宽度为2
plt.tick_params(direction='in', # 刻度线方向朝里
width=2 # 刻度线宽度为2
)
# 隐藏上和右轴脊
# (4)隐藏坐标轴的上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()
图像展示: