2015-05-19 15 views
5

Ich bin ein komplexer Wert wie diese Plotten:Wie abgerundete Linie zeichnen endet matplotlib mit

a=-0.49+1j*1.14 
plt.polar([0,angle(x)],[0,abs(x)],linewidth=5) 

enter image description here

Gibt es Giving eine Einstellung, die ich abgerundete Linienenden bekommen können , wie die rote Linie im folgenden Beispiel (in Farbe gezeichnet)?

enter image description here

Antwort

9

Die Linie proprty solid_capstyle (docs). Es gibt auch eine dash_capstyle, die die Linienenden auf jedem Strich steuert.

import matplotlib.pyplot as plt 
import numpy as np 

x = y = np.arange(5) 

fig, ax = plt. subplots() 

ln, = ax.plot(x, y, lw=10, solid_capstyle='round') 
ln2, = ax.plot(x, 4-y, lw=10) 
ln2.set_solid_capstyle('round') 
ax.margins(.2) 

enter image description here

Dies wird ebenso funktionieren wird mit plt.polar, die für die Schaffung eines Polarachsen eine bequeme Methode ist und ruft plot auf, und das das Objekt durch Line2D zurückgegeben.

+2

Zum OP, beachten Sie, dass dies auch als Kwarg zu "plt.polar" funktioniert, da es nur eine polare Achse erstellt und Dinge an "ax.plot" weiterleitet. Zum Beispiel: 'plt.polar (x, y, linienbreite = 5, solid_capstyle = 'rund')'. –

+0

@JoeKington Fair genug, bearbeitete Antwort, um diesen Kommentar zu enthalten. – tacaswell

Verwandte Themen