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

如何在Python中复现指定散点图?坐标轴零点设置遇阻

Python复现坐标轴居中的散点图方法

要实现坐标轴交汇在零点的散点图,核心是调整Matplotlib的坐标轴(spine)位置,以下是完整的实现步骤和代码:

完整代码示例

import matplotlib.pyplot as plt
import numpy as np

# 生成示例数据(替换成你的实际数据即可)
np.random.seed(42)
x = np.random.uniform(-10, 10, 50)
y = np.random.uniform(-10, 10, 50)

# 创建绘图窗口
fig, ax = plt.subplots(figsize=(8, 6))

# 绘制散点图
ax.scatter(x, y, color='blue', s=50, alpha=0.8)

# 关键:调整坐标轴到零点
ax = plt.gca()
# 将左侧y轴移到x=0的位置
ax.spines['left'].set_position(('data', 0))
# 将底部x轴移到y=0的位置
ax.spines['bottom'].set_position(('data', 0))

# 隐藏冗余的顶部和右侧坐标轴
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

# 设置刻度仅在可见坐标轴上显示
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

# 添加网格(匹配示例图的样式)
ax.grid(True, linestyle='--', alpha=0.7)

# 设置坐标轴标签和范围
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')
ax.set_xlim(-12, 12)
ax.set_ylim(-12, 12)

plt.show()

关键步骤说明

  • ax.spines['left'].set_position(('data', 0)):把左侧的y轴定位到数据坐标x=0的位置
  • ax.spines['bottom'].set_position(('data', 0)):把底部的x轴定位到数据坐标y=0的位置
  • 隐藏顶部和右侧坐标轴可以让图更简洁,避免干扰
  • 网格和刻度的调整是为了匹配示例图的视觉风格,你可以根据需求修改颜色、大小等参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:20:46