在 Matplotlib 中,您可以使用
Axes.arrow
绘制箭头(https://matplotlib.org/3.5.0/api/_as_gen/matplotlib.axes.Axes.arrow.html)。
是否有类似的函数可以在末端画一条带有圆或其他对接的线?我本以为这是
Axes.arrow
的关键字参数选项,但它似乎不存在。
只是一个关于类和继承的想法,但我认为 @johanc 链接更好:
from matplotlib.lines import Line2D
import matplotlib.pyplot as plt
import matplotlib.patches as pt
class Line2D(Line2D):
def draw(self, rdr):
super().draw(rdr)
xy = self.get_xydata()
start, end = xy[0], xy[-1]
r = pt.Rectangle((start[0] - .05, start[1] - .05), .1, .1,
color=self.get_color(),
fill=None)
plt.gca().add_patch(r)
c = pt.Ellipse(end, .05, .05,
color=self.get_color(),
fill=True)
plt.gca().add_patch(c)
fig = plt.figure()
ax = fig.add_subplot()
rg = [-.5, 1.5]
ax.set_xlim(rg)
ax.set_ylim(rg)
l = Line2D([0, 1], [0, 1], color="green")
ax.add_artist(l)
plt.show()
您可以获得其他参数(线宽等)以应用于您的补丁对象。