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

如何在Python中将几何散点与圆心重合的圆合并至同一张绘图

合并散点网格与空心圆到同一张图的实现方案

问题背景与需求

我正尝试在Python中将两种几何图形绘制到同一张图内:

  1. 已完成由散点构成的网格状几何体绘制,代码如下:
df_1_new = pd.DataFrame()
df_1_new['X_coordinate']=pd.Series(x_new)
df_1_new['Y_coordinate']=pd.Series(y_new)
df_1_new['node_number'] = df_1_new.index
df_1_new = df_1_new[['node_number','X_coordinate','Y_coordinate']]

plt.scatter(x_new, y_new)
plt.show()
  1. 已绘制空心圆,代码如下:
from matplotlib import pyplot as plt, patches
plt.rcParams["figure.figsize"] = [9.00, 6.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot()
circle1 = plt.Circle((2, 2), radius=5, fill = False)
ax.add_patch(circle1)
ax.axis('equal')
plt.show()

需求:将两种图形合并到同一张图中,使圆的圆心与几何体的形心(2,2)完全重合,形成圆包裹几何体的效果,求实现代码。

实现代码与说明

核心是共用同一个Matplotlib坐标轴对象来绘制两种图形,同时保证坐标轴比例一致避免圆变形。完整代码如下:

import pandas as pd
from matplotlib import pyplot as plt, patches

# 配置绘图参数
plt.rcParams["figure.figsize"] = [9.00, 6.50]
plt.rcParams["figure.autolayout"] = True

# 创建统一的画布与坐标轴
fig, ax = plt.subplots()

# 绘制散点网格几何体
df_1_new = pd.DataFrame()
df_1_new['X_coordinate'] = pd.Series(x_new)
df_1_new['Y_coordinate'] = pd.Series(y_new)
df_1_new['node_number'] = df_1_new.index
df_1_new = df_1_new[['node_number','X_coordinate','Y_coordinate']]

ax.scatter(x_new, y_new)  # 基于同一坐标轴绘制散点

# 绘制空心圆,圆心与形心(2,2)重合
circle1 = plt.Circle((2, 2), radius=5, fill=False)
ax.add_patch(circle1)

# 强制坐标轴比例一致,防止圆被拉伸为椭圆
ax.axis('equal')

# 显示图形
plt.show()

关键注意点:

  • 所有绘图操作必须基于同一个ax对象,确保图形在同一张画布内。
  • ax.axis('equal')不可省略,否则会因坐标轴刻度比例差异导致圆变形。
  • 确认plt.show()带有括号,否则图形无法正常渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:54:24