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

如何用Matplotlib实现X轴垂直向上、Y轴水平向左的绘图?

用Matplotlib实现X轴垂直向上、Y轴水平向左的图表

要实现你需要的坐标轴布局(X轴垂直向上,Y轴水平向左,常规坐标(-5, 3)对应目标位置),可以通过调整Matplotlib坐标轴的方向、位置和刻度来完成,以下是具体实现步骤和代码:

核心思路

  • 将原Y轴作为新的X轴(垂直向上),并将其刻度和标签移到图表右侧;
  • 将原X轴反转(正方向改为向左),作为新的Y轴,并将其刻度和标签移到图表顶部;
  • 常规坐标(x, y) = (-5, 3)在新布局中,会对应X轴(垂直向上)的3位置,Y轴(水平向左)的5位置(因X轴反转,原x=-5对应新Y轴的正方向5)。

完整代码

import matplotlib.pyplot as plt

# 创建绘图对象
fig, ax = plt.subplots(figsize=(6, 6))

# 1. 反转X轴,让Y轴正方向向左
ax.invert_xaxis()

# 2. 调整原Y轴(新X轴)的位置:移到右侧,刻度和标签垂直向上
ax.yaxis.set_label_position("right")
ax.yaxis.tick_right()

# 3. 调整原X轴(新Y轴)的位置:移到顶部,刻度和标签水平显示
ax.xaxis.set_label_position("top")
ax.xaxis.tick_top()

# 绘制常规坐标(-5, 3)的点,验证位置
ax.scatter(-5, 3, color='#ff4500', s=120, zorder=5)

# 设置坐标轴标签
ax.set_xlabel('Y轴(水平向左)', fontsize=12)
ax.set_ylabel('X轴(垂直向上)', fontsize=12)

# 设置坐标轴范围,确保点在可视区域内
ax.set_xlim(-10, 10)
ax.set_ylim(-10, 10)

# 添加网格辅助查看
ax.grid(True, linestyle='--', alpha=0.7)

plt.show()

代码解释

  • ax.invert_xaxis():反转原X轴的方向,使得X轴正方向从向右变为向左,满足Y轴水平向左的需求;
  • ax.yaxis.set_label_position("right") + ax.yaxis.tick_right():把原本垂直向上的Y轴(作为新的X轴)移到图表右侧,刻度和标签都在右侧,符合X轴垂直向上的布局;
  • ax.xaxis.set_label_position("top") + ax.xaxis.tick_top():把反转后的X轴(作为新的Y轴)移到图表顶部,水平显示刻度和标签;
  • scatter(-5, 3):直接绘制常规坐标的点,在调整后的布局中,该点会出现在X轴(垂直向上)3的位置,Y轴(水平向左)5的位置,完全匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:28:36