jon*_*boy 5 python matplotlib arrow-functions
我正在尝试在两组散点之间绘制多个箭头。使用 绘制一条线非常容易ax.plot。但我正在尝试实现一个箭头而不是一条线。点之间的箭头似乎没有对齐。
因此,如果线图在下面初始化,它就可以正常工作。但箭袋图并不单独绘制相同的线条。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.DataFrame(np.random.randint(-50,50,size=(100, 4)), columns=list('ABCD'))
fig, ax = plt.subplots()
x1 = df['A']
y1 = df['B']
x2 = df['C']
y2 = df['D']
AB = plt.scatter(x1, y1, c = 'blue', marker = 'o', s = 10, zorder = 3)
CD = plt.scatter(x2, y2, c = 'red', marker = 'o', s = 10, zorder = 2)
# plot line between points
#ax.plot([x1,x2],[y1,y2], color = 'black', linestyle = '--', linewidth = 0.5)
ax.quiver([x1, x2], [y1, y2])
Run Code Online (Sandbox Code Playgroud)
根据文档,请参阅scale_units选项,您需要:angles='xy', scale_units='xy', scale=1在quiver:
AB = ax.scatter(x1, y1, c = 'blue', marker = 'o', s = 10, zorder = 3)
CD = ax.scatter(x2, y2, c = 'red', marker = 'o', s = 10, zorder = 2)
ax.quiver(x1, y1, (x2-x1), (y2-y1), angles='xy', scale_units='xy', scale=1)
plt.show()
Run Code Online (Sandbox Code Playgroud)
输出: