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

如何在Matplotlib中实现原点居中带箭头的笛卡尔坐标系?

在Matplotlib中创建笛卡尔坐标系的方法

要实现交于原点(0,0)、带箭头的笛卡尔坐标系,你可以对Matplotlib的坐标轴进行自定义调整,以下是修改后的完整代码:

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(-6, 6, 0.2)
x = (4*(t*t-1)/(t*t+1))
y = (4*t*(t*t-1)/(t*t+1))

plt.figure(figsize=(9, 5))
plt.plot(x, y, label='摆线')
plt.plot(0, 0, 'go', label='O(0, 0)')

# 获取当前坐标轴实例
ax = plt.gca()

# 隐藏默认的顶部、右侧边框
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

# 将左侧y轴移到x=0位置,底部x轴移到y=0位置
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))

# 给坐标轴末端添加箭头
ax.plot(1, 0, ">k", transform=ax.get_yaxis_transform(), clip_on=False)
ax.plot(0, 1, "^k", transform=ax.get_xaxis_transform(), clip_on=False)

# 调整坐标轴标签位置
ax.set_xlabel('x', loc='right')
ax.set_ylabel('y', loc='top')

plt.title('参数方程图像')
plt.grid()
plt.legend(loc=0)
plt.show()

关键调整说明:

  • 通过plt.gca()获取当前坐标轴对象,实现精细控制
  • 隐藏顶部和右侧边框,只保留需要的中心坐标轴
  • 使用set_position(('data', 0))将坐标轴定位到原点交汇
  • 绘制箭头时利用transform参数,确保箭头始终显示在坐标轴末端,不受绘图范围影响
  • 调整标签位置让x轴标签在右侧、y轴标签在顶部,贴合笛卡尔坐标系的视觉习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:56:05