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

如何在Python中创建带中心十字准线且刻度在准线上的散点图?

实现中心十字准线散点图的解决方案

核心思路

  • 隐藏默认的上下左右边框坐标轴
  • 在指定中心位置(通常是(0,0))绘制十字准线作为新的坐标轴载体
  • 将刻度与刻度标签绑定到十字准线上,替代原坐标轴的显示逻辑
  • 保留散点图的原有绘制逻辑

修改后的完整代码示例(基于Matplotlib)

import matplotlib.pyplot as plt
import numpy as np

# 生成示例散点数据(可替换为你的业务数据)
np.random.seed(42)
x = np.random.randn(50)
y = np.random.randn(50)

# 创建画布与绘图轴
fig, ax = plt.subplots(figsize=(8, 8))

# 绘制散点图
ax.scatter(x, y, color='#1f77b4', alpha=0.7)

# --------------------------
# 核心修改:重构坐标轴显示
# --------------------------
# 隐藏默认的边框坐标轴
for spine in ['top', 'right', 'left', 'bottom']:
    ax.spines[spine].set_visible(False)

# 绘制中心十字准线(作为新坐标轴)
ax.axvline(x=0, color='black', linewidth=1.2)
ax.axhline(y=0, color='black', linewidth=1.2)

# 配置X轴刻度:绑定到中心水平线上方
ax.set_xticks(np.arange(-3, 4, 1))
ax.set_xticklabels(np.arange(-3, 4, 1))
ax.tick_params(axis='x', bottom=False, labelbottom=False, top=True, labelsize=10)
ax.xaxis.set_label_position('top')
ax.set_xlabel('X Axis', labelpad=12, fontsize=11)

# 配置Y轴刻度:绑定到中心垂直线右侧
ax.set_yticks(np.arange(-3, 4, 1))
ax.set_yticklabels(np.arange(-3, 4, 1))
ax.tick_params(axis='y', left=False, labelleft=False, right=True, labelsize=10)
ax.yaxis.set_label_position('right')
ax.set_ylabel('Y Axis', labelpad=12, fontsize=11)

# 设置对称坐标轴范围,保证十字准线居中
ax.set_xlim(-3.5, 3.5)
ax.set_ylim(-3.5, 3.5)

# 可选:添加辅助网格
ax.grid(True, linestyle='--', alpha=0.3)

plt.show()

关键细节说明

  1. 准线自定义:如果你的中心不是(0,0),只需修改ax.axvline和ax.axhline的x/y参数值即可
  2. 刻度调整:通过np.arange的参数可以修改刻度间隔,比如np.arange(-5, 6, 2)会生成间隔为2的刻度
  3. 样式优化:准线的颜色、粗细,散点的颜色、透明度等都可以根据需求调整对应参数
  4. 标签位置:labelpad参数用于控制坐标轴标签与准线的距离,避免遮挡

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:56:00