matplotlib.patches.Arc#

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

Basisklassen: Ellipse

Ein elliptischer Bogen, d.h. ein Segment einer Ellipse.

Aufgrund interner Optimierungen kann der Bogen nicht gefüllt werden.

Parameter:
xy(float, float)

Das Zentrum der Ellipse.

widthfloat

Die Länge der horizontalen Achse.

heightfloat

Die Länge der vertikalen Achse.

anglefloat

Rotation der Ellipse in Grad (gegen den Uhrzeigersinn).

theta1, theta2float, Standard: 0, 360

Start- und Endwinkel des Bogens in Grad. Diese Werte beziehen sich auf angle, z. B. wenn angle = 45 und theta1 = 90 ist, ist der absolute Startwinkel 135. Standardmäßig theta1 = 0, theta2 = 360, d. h. eine vollständige Ellipse. Der Bogen wird gegen den Uhrzeigersinn gezeichnet. Winkel größer oder gleich 360 oder kleiner als 0 werden durch einen äquivalenten Winkel im Bereich [0, 360) dargestellt, indem der Eingabewert modulo 360 genommen wird.

Andere Parameter:
**kwargsPatch Eigenschaften

Die meisten Patch-Eigenschaften werden als Schlüsselwortargumente unterstützt, außer fill und facecolor, da das Füllen nicht unterstützt wird.

Eigenschaft

Beschreibung

agg_filter

eine Filterfunktion, die ein (m, n, 3) Float-Array und einen dpi-Wert entgegennimmt und ein (m, n, 3) Array und zwei Offsets von der linken unteren Ecke des Bildes zurückgibt

alpha

unknown

animated

bool

antialiased oder aa

bool oder None

capstyle

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

clip_box

BboxBase oder None

clip_on

bool

clip_path

Patch oder (Path, Transform) oder None

color

color

edgecolor oder ec

Farbe oder None

facecolor oder fc

Farbe oder None

figure

Figure oder SubFigure

füllen

bool

gid

str

Muster (hatch)

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

hatch_linewidth

unknown

in_layout

bool

joinstyle

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

label

object

linestyle oder ls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth oder lw

float oder None

mouseover

bool

path_effects

Liste von AbstractPathEffect

picker

None oder bool oder float oder callable

rasterized

bool

sketch_params

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

snap

bool oder None

transform

Transform

url

str

visible

bool

zorder

float

draw(renderer)[Quelle]#

Zeichnet den Bogen auf den gegebenen renderer.

Anmerkungen

Ellipsen werden normalerweise mit einer Approximation gezeichnet, die acht kubische Bézier-Splines verwendet. Der Fehler dieser Approximation beträgt laut dieser nicht verifizierten Quelle 1,89818e-6

Lancaster, Don. Approximating a Circle or an Ellipse Using Four Bezier Cubic Splines.

https://www.tinaja.com/glib/ellipse4.pdf

Es gibt einen Anwendungsfall, bei dem sehr große Ellipsen mit sehr hoher Genauigkeit gezeichnet werden müssen und es zu teuer ist, die gesamte Ellipse mit genügend Segmenten (entweder Splines oder Liniensegmente) zu rendern. Daher wird in dem Fall, in dem einer der Radien der Ellipse groß genug ist, dass der Fehler der Spline-Approximation sichtbar ist (größer als ein Pixelversatz von der Ideale), eine andere Technik verwendet.

In diesem Fall werden nur die sichtbaren Teile der Ellipse gezeichnet, wobei jeder sichtbare Bogen eine feste Anzahl von Spline-Segmenten (8) verwendet. Der Algorithmus geht wie folgt vor:

  1. Die Punkte, an denen die Ellipse die Achsen (oder die Bildebene) schneidet, werden ermittelt. (Dies geschieht durch eine inverse Transformation der Bounding Box, so dass sie sich auf den Einheitskreis bezieht – dies erleichtert die Schnittberechnung erheblich, als eine direkte Schnittberechnung mit einer rotierten Ellipse durchzuführen.)

    Dies verwendet den Algorithmus „Linie schneidet einen Kreis“ aus

    Vince, John. Geometry for Computer Graphics: Formulae, Examples & Proofs. London: Springer-Verlag, 2005.

  2. Die Winkel jedes Schnittpunktes werden berechnet.

  3. Beginnend in positiver x-Richtung und fortlaufend gegen den Uhrzeigersinn werden die sichtbaren Bogensegmente zwischen den Paaren von Eckpunkten mit der Bézier-Bogenapproximationsmethode gezeichnet, die in Path.arc implementiert ist.

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>, hatch_linewidth=<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>)[Quelle]#

Setzt mehrere Eigenschaften auf einmal.

Unterstützte Eigenschaften sind

Eigenschaft

Beschreibung

agg_filter

eine Filterfunktion, die ein (m, n, 3) Float-Array und einen dpi-Wert entgegennimmt und ein (m, n, 3) Array und zwei Offsets von der linken unteren Ecke des Bildes zurückgibt

alpha

float oder None

angle

float

animated

bool

antialiased oder aa

bool oder None

capstyle

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

Mitte

(float, float)

clip_box

BboxBase oder None

clip_on

bool

clip_path

Patch oder (Path, Transform) oder None

color

color

edgecolor oder ec

Farbe oder None

facecolor oder fc

Farbe oder None

figure

Figure oder SubFigure

füllen

bool

gid

str

Muster (hatch)

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

hatch_linewidth

unknown

Höhe

float

in_layout

bool

joinstyle

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

label

object

linestyle oder ls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth oder lw

float oder None

mouseover

bool

path_effects

Liste von AbstractPathEffect

picker

None oder bool oder float oder callable

rasterized

bool

sketch_params

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

snap

bool oder None

transform

Transform

url

str

visible

bool

width

float

zorder

float

Beispiele für die Verwendung von matplotlib.patches.Arc#

Skaleninvariante Winkelbeschriftung

Skaleninvariante Winkelbeschriftung

Ellipse mit Einheiten

Ellipse mit Einheiten