You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matplotlib图表的中心坐标轴两端添加箭头

解决方法

你可以直接在原有箭头绘制代码的基础上,补充x轴负方向、y轴负方向的箭头绘制逻辑即可,修改后的完整代码如下:

import matplotlib.pyplot as plt

fig, ax = plt.subplots(1)

plt.xlim([-100, 100])
plt.ylim([-100, 100])

ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')

ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)

ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)

ax.set_aspect('equal')

# 调整轴的线宽
for axis in ['top','bottom','left','right']:
    ax.spines[axis].set_linewidth(3)

# 四个方向箭头添加逻辑
ax.plot(1, 0, ">k", transform=ax.get_yaxis_transform(), clip_on=False) # x轴右端右箭头
ax.plot(0, 0, "<k", transform=ax.get_yaxis_transform(), clip_on=False) # x轴左端左箭头
ax.plot(0, 1, "^k", transform=ax.get_xaxis_transform(), clip_on=False) # y轴上端上箭头
ax.plot(0, 0, "vk", transform=ax.get_xaxis_transform(), clip_on=False) # y轴下端下箭头

plt.show()

代码说明

  • 坐标轴转换transform=ax.get_yaxis_transform()代表使用坐标轴相对坐标:x取值0对应x轴最左端、1对应x轴最右端,y取值0对应x轴所在的水平位置,因此可以快速定位到x轴的两端位置
  • 坐标轴转换transform=ax.get_xaxis_transform()同理,y取值0对应y轴最下端、1对应y轴最上端,x取值0对应y轴所在的垂直位置,可快速定位y轴两端
  • marker参数中<代表左箭头、>代表右箭头、^代表上箭头、v代表下箭头,后缀k代表颜色为黑色

内容的提问来源于stack exchange,提问作者JBL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:36:01