Отображение трехмерного графика рассеяния с цветом, зависящим от данных - PullRequest
2 голосов
/ 19 октября 2011

У меня есть большой набор собранных данных, которые я хотел бы отобразить на трехмерной диаграмме рассеяния.Данные содержатся в текстовом файле.

Данные организованы следующим образом:

1 1 1 10.8
2 1 1 3.4
4 1 1 6.1
8 1 1 4.5
1 2 1 7.8
...
8 8 8 11.9

Первые три токена в каждой строке должны представлять (x, y, z) точки.На трехмерной диаграмме рассеяния для каждой из этих точек должна быть точка.

Цвет точек зависит от четвертого жетона.По сути, чем ближе четвертый параметр к максимальному значению, тем ближе он будет к красному цвету.Чем ближе четвертый параметр к минимальному значению, тем голубее оно будет.

Я уверен, что функция scatter3 (X, Y, Z, S, C) делает это, но яне эксперт.

Вот что содержит моя переменная данных:

Data Variable

1 Ответ

3 голосов
/ 19 октября 2011

Попробуйте (предположим, data - это массив, который вы указали в своем вопросе):

x = data(:,1);
y = data(:,2);
z = data(:,3);
s = ones(size(data,1), 1) * 20; %sizes of markers
c = data(:,4); %color data

scatter3(x,y,z,s,c);
colorbar;

Или вы можете просто сделать это встроенным:

scatter3(data(:,1),data(:,2),data(:,3),ones(size(data,1), 1)*20,data(:,4));
colorbar
...