Как я могу сделать простую 3D-линию с Matplotlib?

Я новичок в python. Я хочу сгенерировать строки, которые я получаю из массива в 3D.

Вот код:

VecStart_x = [0,1,3,5] VecStart_y = [2,2,5,5] VecStart_z = [0,1,1,5] VecEnd_x = [1,2,-1,6] VecEnd_y = [3,1,-2,7] VecEnd_z =[1,0,4,9] import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot([VecStart_x ,VecEnd_x],[VecStart_y,VecEnd_y],[VecStart_z,VecEnd_z]) plt.show() Axes3D.plot() 

Я всегда получаю эту ошибку:

ValueError: третий arg должен быть строкой формата

Я ценю вашу помощь.

2 Solutions collect form web for “Как я могу сделать простую 3D-линию с Matplotlib?”

Думаю, вы хотите построить 4 строки. Затем вы можете попробовать

 for i in range(4): ax.plot([VecStart_x[i], VecEnd_x[i]], [VecStart_y[i],VecEnd_y[i]],zs=[VecStart_z[i],VecEnd_z[i]]) 

Как предположил @Nicolas, взгляните на галерею matplotlib.

Галерея – отличная отправная точка, чтобы узнать примеры:

http://matplotlib.org/gallery.html

Здесь приведен пример 3d-линии:

http://matplotlib.org/examples/mplot3d/lines3d_demo.html

Вы видите, что вам нужно перейти к функции вектора ax.plot 3. Фактически вы передаете список списков. Я не знаю, что вы имеете в виду под заголовком «Начало и конец», но следующая строка должна работать:

 ax.plot(VecStart_x + VecEnd_x, VecStart_y + VecEnd_y, VecStart_z +VecEnd_z) 

Здесь я суммирую подсписку (конкатенацию), чтобы иметь только один список по оси.

  • ImportError: Ошибка загрузки DLL:% 1 не является допустимым приложением Win32 для Python Matplotlib
  • Matplotlib event_handling line picker
  • таблица matplotlib обрезается
  • Как установить MatPlotLib на Mac 10.7 в virtualenv
  • matplotlib: удалить подзаговор
  • Построение гиперболоида
  • Извлеките специальные столбцы для файла csv для списка в Python
  • Ключевая ошибка & Pandas
  • Python - лучший язык программирования в мире.