matplotlib.patches.Arc#

class matplotlib.patches.Arc(xy, width, height, *, angle=0.0, theta1=0.0, theta2=360.0, **kwargs)[源代码][源代码]#

基类:Ellipse

椭圆弧,即椭圆的一部分。

由于内部优化,弧线无法填充。

参数:
xy(浮点数, 浮点数)

椭圆的中心。

宽度浮动

水平轴的长度。

高度浮动

垂直轴的长度。

角度浮动

椭圆的旋转角度(逆时针方向)。

theta1, theta2float, 默认值: 0, 360

弧的起始和结束角度,单位为度。这些值相对于 angle,例如,如果 angle = 45 且 theta1 = 90,则绝对起始角度为 135。默认 theta1 = 0,theta2 = 360,即一个完整的椭圆。弧线按逆时针方向绘制。大于或等于 360 度,或小于 0 度的角度,通过将输入值取模 360,表示为范围 [0, 360) 内的等效角度。

其他参数:
**kwargs : Patch 属性补丁属性

大多数 Patch 属性作为关键字参数都受支持,除了 fillfacecolor 因为填充功能不受支持。

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组和两个从图像左下角开始的偏移量

alpha

未知

animated

布尔

抗锯齿 或 aa

布尔值或无

capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

颜色

color

edgecolor 或 ec

color or None

facecolor 或 fc

color or None

figure

FigureSubFigure

fill

布尔

gid

str

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

in_layout

布尔

joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

标签

对象

线条样式 或 ls

{'-', '--', '-.', ':', '', (偏移, 开关序列), ...}

linewidth 或 lw

浮点数或无

鼠标悬停

布尔

path_effects

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

visible

布尔

zorder

浮动

draw(renderer)[源代码][源代码]#

绘制弧线到给定的*渲染器*。

注释

椭圆通常使用八段三次贝塞尔样条的近似方法绘制。根据这个未经证实的来源,该近似的误差为1.89818e-6。

Lancaster, Don. 使用四个贝塞尔三次样条近似一个圆或椭圆.

toctree 是一个 reStructuredText 指令,这是一个非常多功能的标记。指令可以有参数、选项和内容。

在某些使用场景中,必须以非常高的精度绘制非常大的椭圆,并且用足够多的线段(无论是样条曲线还是线段)渲染整个椭圆的成本太高。因此,在椭圆的任一轴半径大到样条近似误差会明显可见(偏离理想位置超过一个像素)的情况下,会使用一种不同的技术。

在这种情况下,只绘制椭圆的可见部分,每个可见弧段使用固定数量的样条线段(8)。算法如下:

  1. 椭圆与轴(或图形)边界框相交的点被定位。(这是通过对边界框执行逆变换,使其相对于单位圆——这使得相交计算比直接进行旋转椭圆相交要容易得多。)

    这使用了来自的“直线与圆相交”算法:

    Vince, John. 计算机图形学几何:公式、示例与证明. 伦敦: Springer-Verlag, 2005.

  2. 计算每个交点的角度。

  3. 从正x方向开始逆时针进行,每对顶点之间的可见弧段使用`.Path.arc`中实现的贝塞尔弧近似技术绘制。

set(*, agg_filter=<UNSET>, alpha=<UNSET>, angle=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, capstyle=<UNSET>, center=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, color=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, fill=<UNSET>, gid=<UNSET>, hatch=<UNSET>, height=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, mouseover=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, width=<UNSET>, zorder=<UNSET>)[源代码]#

一次性设置多个属性。

支持的属性有

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组和两个从图像左下角开始的偏移量

alpha

标量或无

角度

浮动

animated

布尔

抗锯齿 或 aa

布尔值或无

capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

中心

(浮点数, 浮点数)

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

颜色

color

edgecolor 或 ec

color or None

facecolor 或 fc

color or None

figure

FigureSubFigure

fill

布尔

gid

str

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

高度

浮动

in_layout

布尔

joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

标签

对象

线条样式 或 ls

{'-', '--', '-.', ':', '', (偏移, 开关序列), ...}

linewidth 或 lw

浮点数或无

鼠标悬停

布尔

path_effects

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

visible

布尔

宽度

浮动

zorder

浮动

使用 matplotlib.patches.Arc 的示例#

尺度不变角度标签

Scale invariant angle label

带有单位的椭圆

Ellipse with units