У меня проблема с графиком 3-го измерения для трех переменных.
У меня есть три матрицы: X, Y и Z с параметрами в этом типе:
(x_1, y_1, z_1)
(x_2, y_2, z_2)
.
(x_n, y_n, z_n)
и я могу показать их в отдельных точках на графике scatter3D. удар - мой код, цель [0] - x, цель [1] - y, а цель [2] - z:
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.scatter3D([s.objectives[0] for s in algorithm.result],
[s.objectives[1] for s in algorithm.result],
[s.objectives[2] for s in algorithm.result])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
Но моя проблема в том, когда я хочу показать линию между точками. Я хочу провести линию между точками в направлении изменения в одной из матриц, например x.
Я имею в виду, если моя цель основана на x и предположим, что x непрерывно увеличивается, я хочу провести линию между точкой с x_1 и точкой с x_2, а затем между точкой с x_2 и точкой с х_3 и ....
На самом деле эта строка показывает, как меняются три моих параметра при изменении x (при увеличении x).
Для этого я использовал plot3D, удар - мой код:
ax.plot3D([s.objectives[0] for s in algorithm.result],
[s.objectives[1] for s in algorithm.result],
[s.objectives[2] for s in algorithm.result])
Но на рисунке у меня есть линия между каждой точкой ко всем остальным точкам. Я имею в виду ((n * n-1) / 2) строк вместо n-1 строк.
Как мне достичь своей цели с помощью mplot3d? или другими способами.