Jupyter中使用pylab绘图:如何将刻度置于坐标轴本身?
实现方法
完全可以实现,给你两种常见的实现方式:
1. 保留原有绘图框,同时显示四个边的刻度
如果只是想在原有绘图框的顶部和右侧也显示刻度(和左下侧同时存在),直接用tick_params方法配置即可:
import pylab as plt # 生成示例数据 x = plt.linspace(-5, 5, 100) y = x ** 2 # 绘制函数曲线 plt.plot(x, y) # 配置刻度:让x轴顶部、y轴右侧都显示刻度,标签可按需开启 plt.tick_params( axis='both', # 对x和y轴都生效 which='both', # 包含主、副刻度 top=True, right=True, # 显示顶部和右侧的刻度线 labeltop=False, labelright=False # 不显示顶部和右侧的刻度标签,需要的话改成True ) plt.show()
2. 将坐标轴移到图中心,刻度显示在坐标轴本身
如果想让坐标轴(x=0、y=0)直接作为绘图的轴线,刻度显示在这些轴线上,可以调整坐标轴边框(spines)的位置:
import pylab as plt # 生成示例数据 x = plt.linspace(-5, 5, 100) y = plt.sin(x) # 绘制函数曲线 plt.plot(x, y) # 获取当前绘图轴对象 ax = plt.gca() # 隐藏不需要的顶部、右侧边框 ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) # 将左侧边框移到x=0的位置(即y轴) ax.spines['left'].set_position(('data', 0)) # 将底部边框移到y=0的位置(即x轴) ax.spines['bottom'].set_position(('data', 0)) # 配置刻度:只在中心坐标轴上显示刻度和标签 ax.tick_params(axis='x', bottom=True, top=False, labelbottom=True) ax.tick_params(axis='y', left=True, right=False, labelleft=True) # 要是想同时保留原有绘图框的刻度,把top/right设为True即可,比如: # ax.tick_params(axis='x', bottom=True, top=True, labelbottom=True, labeltop=False) plt.show()
内容的提问来源于stack exchange,提问作者Marc Le Bihan
相关产品推荐
相关产品推荐

