假设您的 x 值和 y 值定义如下(x_length 在这里可能会产生误导):
import numpy as np
import matplotlib.pyplot as plt
x_start = 0.2
x_delta = 0.7
y_start = 0.2
y_delta = 0.4
基于x_delta 和y_delta,您可以计算归一化(长度=1)正交向量(与您的箭头正交):
orth_vector = np.array([y_delta, -x_delta])
orth_normalized = orth_vector/np.linalg.norm(orth_vector)
借助正交矢量,您可以向任意方向移动箭头,使其与原始箭头平行。例如,在下面的示例中使用offset=0.1,箭头将被移动,因此距离为0.1
offset = 0.1
x_start_shift = x_start + offset * orth_normalized[0]
y_start_shift = y_start + offset * orth_normalized[1]
绘制所有内容都会显示移位箭头和原始箭头(注意:您可以保留增量,您只需要移动起点):
plt.scatter(x_start, y_start)
plt.scatter(x_start + x_delta, y_start + y_delta)
plt.arrow(x_start,y_start,x_delta,y_delta)
plt.arrow(x_start_shift,y_start_shift,x_delta,y_delta)
plt.ylim(0,1)
plt.xlim(0,1)
plt.gca().set_aspect('equal', adjustable='box')
plt.show()