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

如何用Matplotlib填充两个同心圆之间的区域?

如何用Matplotlib填充同心圆之间的环形区域?

要实现两同心圆之间的环形纯色填充,最简洁高效的方式是使用Matplotlib的Wedge补丁(属于matplotlib.patches模块),它可以直接生成完整环形区域并设置填充色。以下是修改后的完整代码:

import matplotlib.pyplot as plt
from matplotlib.patches import Wedge
import numpy as np

# 统一同心圆参数(两圆中心一致,简化重复定义)
centro = (0, 0)
raio_externo = 10
raio_interno = 5

# 创建画布与坐标轴
fig, ax = plt.subplots(figsize=(6, 6))

# 添加环形填充:Wedge参数为(中心x, 中心y, 内半径, 外半径, 起始角度, 结束角度)
# 角度设为0到360即可生成完整环形
ring = Wedge(centro, raio_interno, raio_externo, 0, 360, color="#1f77b4")
ax.add_patch(ring)

# 可选:绘制两个圆的边界线条(与原代码效果保持一致)
theta = np.linspace(0, 2 * np.pi, 100)
x_externo = centro[0] + raio_externo * np.cos(theta)
y_externo = centro[1] + raio_externo * np.sin(theta)
x_interno = centro[0] + raio_interno * np.cos(theta)
y_interno = centro[1] + raio_interno * np.sin(theta)

ax.plot(x_externo, y_externo, color="C0")
ax.plot(x_interno, y_interno, color="C0")

# 保持坐标轴等比例,避免图形变形
ax.axis('equal')
plt.show()

关键说明:

  • Wedge是Matplotlib专门用于创建扇形/环形的补丁类,当起始角度设为0、结束角度设为360时,会直接生成闭合的环形区域。
  • 如果不需要保留圆的边界线条,可以直接省略plot相关代码,仅保留add_patch部分即可实现目标填充效果。
  • 也可以通过fill_between结合路径闭合实现,但Wedge的写法更直观、代码量更少。

内容的提问来源于stack exchange,提问作者Projetos Programação

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 06:32:44