如何使用matplotlib绘制圆形线条末端

ato*_*3ls 7 python numpy matplotlib polar-coordinates

假设我正在绘制一个像这样的复杂值:

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

给予

在此输入图像描述

是否有一个设置我可以用来获得圆形的线条末端,如下例中的红线(在油漆中绘制)?

在此输入图像描述

tac*_*ell 14

专线solid_capstyle(docs).还有一个dash_capstyle控制每个短划线的线端.

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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这将同样有效plt.polar,这是一种创建极轴并调用plot它的便捷方法,以及它Line2D返回的对象.

  • 对OP来说,注意这也可以作为一个kwarg到`plt.polar`,因为它只是创建一个极轴并将事物传递给`ax.plot`.例如:`plt.polar(x,y,linewidth = 5,solid_capstyle ='round')`. (2认同)