Как построить линию между двумя точками на графике scatter3 в MATLAB?

Я использую следующий код для создания графика scatter3:

X = [1,2,3,1,2,3,1,2,3,1,2,3,1,2,3];
Y = [0,0,0,20,20,20,40,40,40,60,60,60,80,80,80,];
Z1 = [10,-48.7863,-73.3457, -68.3091, -142.0666,...
      12, -35.7863, -23.347, -29.3091,-141.0660,...
      13,3.2137,-10.3457,-33.3091,-128.0666]
Z2 = [2,8.2137,-2.3457, 46.6909, 12.9334,...
      10,11.2137, 19.6543,35.6909, 45.9334,...
       -1,16.2137,37.6543,50.6909,34.9334]

figure;scatter3(X,Y,Z1,'filled'); hold on;
scatter3(X,Y,Z2,'filled')

Что приводит к следующему изображению:

То, что я хотел бы иметь, это вертикальная линия между каждой синей и красной точкой.

Примерный вывод может выглядеть так:

Я пытался использовать line функция, однако я не уверен, как создать вектор.

Я старался:

line(X,Y,Z1) % will only connect the blue dots
line(X,Y,Z2) % will only connect the red dots


line(X,Y,Z1:Z2) % will give an error that the vectors must be the same length

1 ответ

Решение

Вы должны вертикально соединить свои Z1 а также Z2 данные, так что каждый столбец определяет линию для построения. Вам также придется копировать X а также Y таким же образом:

line([X; X], [Y; Y], [Z1; Z2], 'Color', 'r');

И результат (добавлен в ваш точечный график):

Другие вопросы по тегам