Тип сюжета, который вы пытаетесь создать, может быть трудно хорошо визуализировать. Я могу дать вам два предложения: одно - это то, что вы хотите , а другое - то, что вы, вероятно, должны вместо этого делать ...
Построение четырехмерных данных:
Чтобы сделать это, вам придется построить серию из x,y,t
точек и как-то представить значение ошибки e
в каждой точке. Вы можете сделать это, изменив цвет или размер точки. В этом примере я построю сферу в каждой точке с диаметром, который изменяется в зависимости от ошибки (диаметр 1 соответствует максимальной ожидаемой ошибке). Цвет представляет время. Я буду использовать пример данных, которые вы добавили в вопрос (отформатированный как матрица 5 на 4 со столбцами, содержащими x
, y
, t
и e
данные):
data = [4 5 2 45; 4 5 6 54; 7 8 2 32; 7 8 9 98; 7 8 1 121];
[x, y, z] = sphere; % Coordinate data for sphere
MAX_ERROR = 121; % Maximum expected error
for i = 1:size(data, 1)
c = 0.5*data(i, 4)/MAX_ERROR; % Scale factor for sphere
X = x.*c+data(i, 1); % New X coordinates for sphere
Y = y.*c+data(i, 2); % New Y coordinates for sphere
Z = z.*c+data(i, 3); % New Z coordinates for sphere
surface(X, Y, Z, 'EdgeColor', 'none'); % Plot sphere
hold on
end
grid on
axis equal
view(-27, 16);
xlabel('x');
ylabel('y');
zlabel('t');
А вот как это будет выглядеть:
Проблема: Хотя сюжет выглядит довольно интересным, он не очень интуитивно понятен. Кроме того, построение множества точек таким образом будет загромождено, и их будет трудно увидеть хорошо.
Более интуитивно понятный трехмерный сюжет:
Может быть лучше вместо этого сделать трехмерный график данных, поскольку его легче интерпретировать. Здесь ось X представляет номер итерации, а ось Y представляет каждую отдельную сеть:
plot3(1:2, [1 1], [2 45; 6 54]); % Plot data for network 4-5
hold on
plot3(1:3, [2 2 2], [2 32; 9 98; 1 121]); % Plot data for network 7-8
xlabel('iteration number');
set(gca, 'YTick', [1 2], 'YTickLabel', {'network 4-5', 'network 7-8'})
grid on
legend('time', 'error')
view(-18, 30)
Это дает намного более четкий сюжет: