В настоящее время у меня небольшая проблема с построением нескольких строк на трехмерном графике. У меня есть список списков, содержащих три Numpy массивы, соответствующие АБВ координаты трех точек на каждой линии, т.е.Создание 3D-графика из нескольких строк на одной фигуре
lines=[[array([10,0,0]),array([10,0,101.5]),array([-5,0,250])],[array([9,0,0]), array([9,0,101.5]),array([-4,0,250])]]
будет представлять 2 линии с 3-мя наборами АБВ координат в каждом (первый здесь будет (10,0,0), (10,0,101,5) и (-0,0250)).
В общем, у меня было бы n строк в этом списке с тремя наборами координат xyz. Я хотел бы построить эти строки на одном 3D-графике с matplotlib. Все, что мне удалось сделать до сих пор, - создать n графиков, каждая из которых содержит одну строку.
Спасибо за помощь!
EDIT: У меня есть список 'lines', содержащий объекты 'line', которые представляют собой только списки, содержащие 3 массива numpy для 3 точек в каждой строке. Я пытался использовать следующий метод:
for line in lines:
fig = plt.figure()
ax = fig.gca(projection='3d')
z = []
for i in [0,1,2]:
z.append(line[i][2])
x = []
for i in [0,1,2]:
x.append(line[i][0])
y = []
for i in [0,1,2]:
y.append(line[i][1])
ax.plot(x, y, z, label='path')
plt.show()
Я думаю, что я понимаю, почему это дает мне 2 участка линий 1 и 2, но я не могу понять способ поставить обе линии на том же участке.
Вы должны отделить свои данные от каждой строки, а затем разделить их отдельно на один и тот же объект оси. Можете ли вы добавить минимальный рабочий пример, чтобы узнать, что вы сделали? –
Я добавил свою попытку в основной вопрос. Спасибо за помощь! –