3D диаграмма рассеяния, окрашенная по Z-Value

Я гуглил некоторое время, но не смог найти решение своей проблемы. Я - пользователь Matlab-любитель, и я хотел бы создать трехмерную диаграмму рассеяния, для этого у меня есть матрица, содержащая несколько точек в трехмерном пространстве:

>> size(A)

  ans =

        2511           3

Мне удалось создать трехмерную диаграмму рассеяния с помощью функции "scatter3", но теперь я немного застрял в цветовом кодировании трехмерных точек.

scatter3 (А (:,1), А (:,2), А (:,3));

Это будет отображать данные, но теперь я хотел бы добавить цветовую кодировку, основанную на z-значении... Сами цвета не имеют большого значения. Это может быть спектр радуги или спектр температуры или что-то еще. Я просто хотел бы раскрасить их, чтобы различать z-значения точек.

Кто-нибудь может мне помочь с этим? Спасибо!

1 ответ

Решение

Вы должны дать еще несколько аргументов scatter3,

scatter3(X,Y,Z,S,C);

S позволяет указать области для каждого маркера (с вектором) или одну область для всех маркеров, в то время как C позволяет указать цвет. Если C является вектором, его значения будут линейно сопоставлены с текущей картой цветов. Чтобы изменить цветовую карту, позвоните colormap(jet) например. Смотрите документацию на colormap,

Извините, если это сбивает с толку. Укороченная версия:

scatter3(A(:,1),A(:,2),A(:,3),9,A(:,3));
colormap(jet); %# or other colormap
Другие вопросы по тегам