Вопрос или проблема
ЦЕЛЬ: визуализировать выходные данные симуляции (z) и время, необходимое для выполнения данной симуляции
КОНТЕКСТ:
- MATLAB: Массив результатов симуляции может быть представлен в виде матрицы f(X,Y).
- Симуляции управляются двумя независимыми переменными (X,Y)
- Выходные данные симуляции Z визуализируются ниже в виде плоскостной диаграммы.
- Время вычисления симуляции для каждой симуляции будет визуализировано вместе с Z.
Визуализируется 483 (=21X23) симуляции:
Это, на самом деле, плоскостная диаграмма, команда для которой: surfc(nStations,nParameter,data)
. 3D форма представляет собой утес: долина синяя (Z=1), а плато желтое (Z=12). Я считаю, что 3D форма и точка обзора не влияют на вопрос.
При просмотре Z желательно видеть время вычисления симуляции для каждой из аннотированных симуляций. На языке MATLAB:
[simulationTime z] = f(x,y)
Какие-либо предложения по улучшению визуализации времени симуляции вместе с выходными данными симуляции (z)?
Я понимаю, что вы ищете не плоскостную диаграмму, а скорее тепловую карту.
Это может дать вам изображение, подобное тому, что вы нам показали, и позволяет делать дальнейшие аннотации.
Ответ или решение
Чтобы визуализировать два выходных параметра для массива симуляций в MATLAB, вы можете использовать комбинацию Surface Plot (поверхностного графика) и Heatmap (тепловой карты). Ниже приведены детализированные шаги и рекомендации, которые помогут вам добиться эффективной визуализации, показывающей как выходные данные симуляции (Z), так и время вычисления для каждой симуляции.
Шаг 1: Подготовка данных
Для начала убедитесь, что у вас есть матрица выходных данных (Z) и матрица времени симуляции (T). Ширина вашей матрицы должна соответствовать тому, чтобы количество строк определялось переменной X
, а количество колонок переменной Y
. Например:
nStations = 21; % Количество станций (X)
nParameter = 23; % Количество параметров (Y)
data = rand(nStations, nParameter) * 11 + 1; % Генерация случайных данных для Z
simulationTime = rand(nStations, nParameter) * 100; % Генерация случайных данных для времени
Шаг 2: Визуализация данных Z
Сначала создайте поверхностный график для визуализации результатов симуляции. Используйте команду surfc
:
surfc(1:nStations, 1:nParameter, data); % Создание поверхностного графика
xlabel('Станции (X)');
ylabel('Параметры (Y)');
zlabel('Выход Z');
title('Поверхностный график выхода Z');
colorbar; % Добавление цветовой шкалы
Шаг 3: Добавление поверхности для времени симуляции
Теперь, чтобы добавить тепловую карту для отображения времени вычислений, можно воспользоваться функцией heatmap
. Прежде чем добавлять ее, вам следует изменить представление сферического графика так, чтобы это не мешало просмотру данных Z.
hold on; % Чтобы не удалять предыдущий график
Далее создайте тепловую карту:
figure;
heatmap(simulationTime, 'ColorMap', jet, 'Title', 'Время симуляции', ...
'XLabel', 'Параметры (Y)', 'YLabel', 'Станции (X)');
Шаг 4: Совмещение визуализаций
Если вы хотите совместить оба представления в одном окне, воспользуйтесь подграфиками, чтобы отобразить их рядом:
figure;
% Подграфик 1
subplot(1, 2, 1);
surfc(1:nStations, 1:nParameter, data);
xlabel('Станции (X)');
ylabel('Параметры (Y)');
zlabel('Выход Z');
title('Поверхностный график выхода Z');
colorbar;
% Подграфик 2
subplot(1, 2, 2);
heatmap(simulationTime, 'ColorMap', jet, 'Title', 'Время симуляции', ...
'XLabel', 'Параметры (Y)', 'YLabel', 'Станции (X)');
Шаг 5: Настройка и аннотации
Для повышения информативности графиков вы можете добавить аннотации и настроить цвета каждой визуализации. Используйте команды text
и annotations
для добавления пояснений к поверхности и тепловым картам, чтобы выделить важные моменты.
Заключение
Эти шаги и стратегии помогут вам успешно визуализировать результаты ваших симуляций, обеспечивая ясное и понятное представление как выходных данных, так и времени вычислений. Используйте возможности MATLAB для дальнейшей кастомизации графиков согласно вашим требованиям, что существенно улучшит восприятие ваших результатов.