使用matplotlib绘制带箭头的散点图

1 投票
1 回答
6920 浏览
提问于 2025-04-18 14:55

我正在尝试在matplotlib中制作一个散点图,并希望从每个点上画出箭头,以表示上限。为此,我做了以下操作:

arrow = u'$\u2193$'
ax.plot(x, y, linestyle='none', markersize=20, marker=arrow)
ax.plot(x, y, linestyle='none', markersize=10, marker='o')

不过,我对结果不是很满意 -

这是结果

我希望箭头能从点的中间位置发出,这样点和箭头看起来更像一个整体。有没有办法做到这一点?

谢谢!

1 个回答

4

你可以使用 quiver 来实现这个功能。它需要一些位置和方向的数据,能够绘制出满是箭头的图。不过,这些箭头会从 x, y 的位置开始,而不是像你在 plot 中看到的那样居中。

x=[4.0,7.0,4.5]
y=[3.0,1.0,5.5]
u=[0,0,0]
v=[1,1,1]
fig, ax = subplots()
ax.quiver(x,y,u,v)
ax.scatter(x,y,color='k')
ax.axis([0,10,0,10])

撰写回答