3D диаграмма рассеяния, окрашенная по Z-Value - PullRequest
5 голосов
/ 22 ноября 2011

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

>> size(A)

  ans =

        2511           3

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

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

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

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

1 Ответ

8 голосов
/ 22 ноября 2011

Вы должны дать еще несколько аргументов для 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
...