如何使用 matplotlib 绘制圆角线端

How to draw rounded line ends using matplotlib

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

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

给予

有没有我可以使用的设置来使线端变圆,例如下例中的红线(用油漆绘制)?

线路属性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)

这与 plt.polar 一样有效,后者是创建极轴并对其调用 plot 的便捷方法,以及它返回的 Line2D 对象。