У меня есть фрейм данных, в котором есть столбцы X, Y и Z, которые представляют координаты точек (каждая строка представляет одну точку). Я хочу нарисовать вектор из точки 1 (строка 1) в точку 2 (строка 2). Я хочу повторить такую вещь для всего кадра данных.
Вот как выглядит датафрейм,
x y z
0 0.67883 0.59075 0.28053
1 0.68366 0.60002 0.28022
2 0.68715 0.60797 0.27884
3 0.69358 0.61166 0.27731
4 0.70080 0.61412 0.27560
5 0.70448 0.61300 0.27581
6 0.70822 0.61747 0.27258
7 0.71459 0.62003 0.26900
8 0.71880 0.62638 0.26273
9 0.72479 0.63126 0.25372
Код, который я пробовал, здесь, он дает вектор mw, но хвост вектора должен быть в точке 1 (строка 1), а голова вектора должна быть в точке 2 (строка 2) и т. Д.
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(p[:, 0], p[:, 1], p[:, 2], color = 'r', marker = 'o', alpha = 0.5)
for i in range(0, len(p), 1):
ax.quiver(x[i], y[i], z[i], x[i+1], y[i+1], z[i+1], length = 0.001)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
x, y и z - список, содержащий каждый столбец.