温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - Show direction arrows in a scatterplot
matplotlib python scatter-plot

python - 在散点图中显示方向箭头

发布于 2020-07-09 21:28:25

我在散点图中绘制数据,我希望看到磁滞的方向。有谁知道如何在每条直线上实现指向下一点的箭头?

或者,可以用指向下一个点的方向的箭头替换标记。

我在寻找什么:

在此处输入图片说明

获取图的代码(无箭头):

df = pd.DataFrame.from_dict({'x' : [0,3,8,7,5,3,2,1],
                             'y' : [0,1,3,5,9,8,7,5]})
x = df['x']
y = df['y']
fig, ax = plt.subplots()
ax.scatter(x,y)
ax.plot(x,y)

查看更多

提问者
NicoH
被浏览
73
ImportanceOfBeingErnest 2019-10-11 23:35

如前所述,人们可以plt.quiver沿一条线产生箭头,例如

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame.from_dict({'x' : [0,3,8,7,5,3,2,1],
                             'y' : [0,1,3,5,9,8,7,5]})
x = df['x'].values
y = df['y'].values

u = np.diff(x)
v = np.diff(y)
pos_x = x[:-1] + u/2
pos_y = y[:-1] + v/2
norm = np.sqrt(u**2+v**2) 

fig, ax = plt.subplots()
ax.plot(x,y, marker="o")
ax.quiver(pos_x, pos_y, u/norm, v/norm, angles="xy", zorder=5, pivot="mid")
plt.show()

在此处输入图片说明