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

Python Matplotlib如何规范绘制部分圆形(圆弧)

Matplotlib 绘制指定角度圆弧的规范实现

不要用同色图形遮挡的取巧方案,matplotlib 内置了专门用于绘制圆弧的Arc类,属于matplotlib.patches模块,天生支持直接指定圆弧的角度范围,不需要额外遮挡操作,是官方推荐的标准实现方式。

Arc的核心参数和你之前用的Circle类逻辑基本对齐,针对正圆圆弧的场景,核心参数说明如下:

  • xy:圆弧对应的圆心坐标,和Circle的圆心参数完全一致
  • width/height:圆弧对应完整正圆的宽、高,正圆场景下两个值相等,均为2倍半径(半径为1时两个参数都传2即可)
  • angle:整个圆弧的旋转角度,不需要旋转时传0
  • theta1:圆弧起始角度,单位为度,以x轴正方向为0度,沿逆时针方向递增
  • theta2:圆弧终止角度,单位规则和theta1一致
  • 颜色、线宽、线型等样式参数的用法和Circle完全相同

你可以直接把之前代码里的Circle替换成Arc实现需求,参考代码如下(示例为绘制30度到210度范围的圆弧,你可以自行修改theta1、theta2的值调整圆弧范围):

import matplotlib.pyplot as plt
from matplotlib.patches import Arc

plt.figure()
ax = plt.gca()

# 直接生成指定角度范围的圆弧
arc = Arc(
    xy=(1, 0),
    width=2,
    height=2,
    angle=0,
    theta1=30,
    theta2=210,
    color='r'
)
ax.add_patch(arc)

# 保持坐标轴等比例,避免圆弧拉伸变形
ax.set_aspect('equal', adjustable='box')

# 保持和之前一致的坐标轴显示范围
plt.xlim([-0.5,2.5])    
plt.ylim([-1.5, 1.5])  

plt.show()

几个使用注意点:

  • Arc默认只绘制弧线、无填充,不需要额外设置fill=None
  • 如果需要绘制顺时针方向的角度区间,直接换算成逆时针对应的角度值即可,比如要画从0度顺时针转到90度的弧,设置theta1=270、theta2=0就能实现
  • 只要保证width和height相等、坐标轴设置了等比例,绘制出来的圆弧就是正圆的一部分,不会出现椭圆变形的问题

内容的提问来源于stack exchange,提问作者Mitchell van Zuylen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:34:12