Трехмерное построение в Matplotlib с одной линией между точками - PullRequest
0 голосов
/ 05 мая 2018

У меня проблема с графиком 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? или другими способами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...