Контур в MATLAB: Обзор графика
Содержание (щелкните для удобной навигации)
- Что такое контур в MATLAB?
- Построение контурной карты в MATLAB с использованием восьми различных команд
- Заключение
- Ссылки
Что такое контур в MATLAB?
Контурная карта в MATLAB — это графическое представление 3D-поверхности относительно постоянной оси Z для отображения в 2D-формате.
Когда мы пытаемся построить 3D-карту в MATLAB, у нас есть разные варианты построения. Одним из них является контурная карта, которая показывает 3D-график в 2D-формате с постоянной осью Z. Изогнутая линия того же цвета показывает одну и ту же точку возвышения. Например, если мы хотим построить 2D-диаграмму 3D-изображения, показанного на рис. 1 нарисуем изогнутые линии, показывающие высоту и крутизну на карте.
На рис. 2 показана контурная карта рис. 1. Мы видим, что каждый
круговая линия находится в той же точке высоты, а крутизна показана
насыщенная зона.
Построение контура в MATLAB с помощью восьми различных команд
Мы представим восемь основных команд для контурной карты. участок:
- КОНТУР (составляет плоскую контурную карту).
- КОНТУР3 (производит трехмерную контурную карту).
- КОНТУР (выдает контурную карту с заполненными линиями).
- EZCONTOUR
- EZCONTOURF
- EZMESHC
- SURFC
- EZSURF
Команда «КОНТУР»
Для создания плоских контурных карт мы используем команду «Контур».
На рис. 4 показан вывод кода MATLAB.
Обычно контурная карта содержит десять линий. Каждый цветная линия находится на одном уровне высоты. Если нам нужно больше строк, мы будем использовать команда:
Контур(x,y,z,25) вместо Контур(x,y,z). Это будет дайте нам 25-строчную контурную карту.
Если мы хотим пометить карту, мы используем команду «clabel». Помечен
уровни высоты показаны на этом рисунке.
[в, ч] = контур (х, у, г)
Класс (c, h)
‘КОНТУР3’ Команда 92’) показывает и поверхность, и контурные линии на одном и том же наборе осей.
Заключение
Когда мы рисуем 3D-поверхность в MATLAB мы можем построить его контур в 2D-формате с одной постоянной осью. Контур любой функции можно построить в MATLAB, и мы можем увидеть разную высоту уровни представлены разными цветами линий и помечены с помощью «clabel» команда. Также мы можем рисовать поверхность и контур одновременно.
Каталожные номера
www.mathworks.com
Программное обеспечение MATLAB
pgfplots: Как имитировать заполненный контурный график MATLAB? — TeX
Здесь я представляю два решения.
Решение 1 (левая часть изображения)
Это попытка воспроизвести рисунок Matlab с возможностями PGFPlots. Чтобы «подтвердить», что я сделал это правильно, я сначала сохранил ваше изображение Matlab и обрезал части оси. Затем я добавил это как \addplot graphics и вдобавок добавил реальный график, т.
е. \addplot контур заполнен 9График 0125 с прозрачностью 50%. Это позволило проверить, правильно ли я нашел границы интервала.
Сказал, что я считаю ваше заявление выше неверным. Кажется, вы удалили цвет для всех значений> 1600. Это также имеет смысл, потому что максимальное значение в файле P3.dat равно 1723 ...
Решение 2 (правая часть изображения)
Здесь я просто использовал обрезанное выше изображение Matlab и воспроизвел цветовую полосу. .
Сравнение
Как вы можете видеть, в решении 1 есть некоторые "артефакты", которые не делают результат таким гладким, как результат Matlab. То есть, потому что расчет/визуализация контуров только зависит от возможностей вашей программы просмотра PDF. Сказал, что может быть ваш результат отличается от моего. Я сделал скриншот из представления в Acrobat Reader XI.
Вот почему я предпочитаю решение 2.
Чтобы улучшить результат, вы должны изменить свой вид Matlab на только показывать контуры, что означает удаление оси и линий сетки.
Тогда единственная разница может заключаться в цветах, используемых/отображаемых на контурном графике Matlab, и в цветовой полосе, рассчитанной с помощью PGFPlots. Конкретно я имею в виду, что можно использовать цвета RGB, а другой CMYK. Но поскольку у вас есть иллюстратор, как вы сказали, вы можете проверить это и адаптировать одну из обеих частей, то есть вывод Matlab или PGFPlots.
Вы также можете создать «чистую», то есть без какой-либо оси, версию цветовой полосы в Matlab, а также импортировать эту графику в цветовую полосу PGFPlots. Конечно, тогда цвета идентичны .
Для получения более подробной информации о том, как работают решения, ознакомьтесь с комментариями в коде.
% использованных PGFPlots v1.14
\RequirePackage{luatex85}
\documentclass{автономный}
\usepackage{pgfplots}
\pgfplotsset{
% вам нужен как минимум этот уровень совместимости или выше, чтобы использовать следующие функции
совместимость = 1,14,
% определить «белую» цветовую палитру для белой части изображения
цветовая карта = {нет данных} {
цвет = (белый)
% цвет = (белый)
цвет = (красный)
},
% загрузить эту палитру, которая позже используется
цветовая карта/сине-красный,
% определяют цветовую карту «parula», которая использовалась для создания экспортированного изображения.
% от Matlab
% (позаимствовано с http://tex.stackexchange.com/a/336647/95441)
цветовая карта = {парула} {
rgb255=(53,42,135)
rgb255=(15,92,221)
rgb255=(18 125 216)
rgb255=(7 156 207)
rgb255=(21 177 180)
rgb255=(89 189 140)
rgb255=(165 190 107)
rgb255=(225,185,82)
rgb255=(252,206,46)
rgb255=(249,251,14)
},
}
\начать{документ}
\begin{tikzpicture}
\начать{ось}[
вид={0}{90},
цветная полоса,
% немного изменить стиль цветовой полосы
стиль цветовой полосы = {
тиковое расстояние = 200,
умакс=1600,
},
% этот ключ-значение необходим из-за `\ addplot graphics'
увеличитьпределы=ложь,
]
% импортировать "экспортированную" графику
\ добавить график [
хмин=0,
хмакс=50,
умин=0,
умакс=150,
] {P3};
% теперь попробуйте воспроизвести стиль экспортированной графики
\ addplot3 [
% для этого использования, например, функция «заполнение счетчика» .
..
контур заполнен={
% ... в сочетании с функцией «уровни цветовой карты»
%, который позволяет настроить используемую цветовую карту
уровни из палитры={
% эта часть палитры предназначена для "цветной" части
цветовой карты = {
% здесь мы используем приведенную выше инициализированную палитру bluered
синий,
% % («viridis» — это цветовая карта, аналогичная
% % использовал сокарту `parula' в Matlab.
% % Но поскольку желтый цвет трудно определить
% % в этом контексте мы используем приведенную выше палитру)
% виридис,
% с этим мы заявляем, что это еще не все
целевая позиция макс=,
% и здесь мы указываем, где соответствующие уровни
% должен *начать*
целевая позиция = {200 400 600 800, 1000, 1200, 1400},
},
% здесь идет вторая часть палитры, которая
% не должен иметь цвета, который невозможен или, по крайней мере,
% Я понятия не имею, как это сделать.
..
цветовой карты = {
% ... поэтому вместо этого я использую "белую" цветовую карту
нет данных,
% здесь нижний конец не нужен, потому что это было
%, указанный в первой части палитры
целевая позиция мин=,
% и вот соответствующий интервал *start*
% для этой палитры
% (как видите -- или нет ;) -- начинается белый цвет
% в позиции/значениях > =1600)
целевая позиция = {1600},
},
},
},
% вам нужно указать только «строки» или «столбцы», потому что
% PGFPlots затем может вычислить другое значение вместе с
% предоставленное количество точек данных
сетка/ряды=31,
% сделать график полупрозрачным, чтобы проверить, что `target pos'
% палитры выбраны правильно
непрозрачность=0,5,
] таблица {P3.
dat};
\конец{ось}
\end{tikzpicture}
\begin{tikzpicture}
\начать{ось}[
% показать цветную полосу
цветная полоса,
%, потому что нет реального сюжета, на котором PGFPlots может получить «мета»
% данных из, их нужно указать вручную
точка мета мин=200,
точка мета макс=1800,
%%% здесь мы снова определяем необходимую цветовую карту и ее стиль
% мы хотим использовать постоянные интервалы в палитре
доступ к цветовой карте = кусочно-константная,
%, а также здесь мы должны снова указать лимиты ...
цветовой карты/целевой позиции min*=200,
цветовая карта/целевая позиция max*=1800,
% ... и используйте эту функцию, которая упрощает предоставление
% образцов в правильном положении
% (пожалуйста, ознакомьтесь с руководством по PGFPlots для получения более подробной информации)
цветовой карты/образца для = const,
% это похоже на приведенный выше пример
цветовая карта = {СМ} {
цветовой карты = {
% .
% от Matlab
% (позаимствовано с http://tex.stackexchange.com/a/336647/95441)
цветовая карта = {парула} {
rgb255=(53,42,135)
rgb255=(15,92,221)
rgb255=(18 125 216)
rgb255=(7 156 207)
rgb255=(21 177 180)
rgb255=(89 189 140)
rgb255=(165 190 107)
rgb255=(225,185,82)
rgb255=(252,206,46)
rgb255=(249,251,14)
},
}
\начать{документ}
\begin{tikzpicture}
\начать{ось}[
вид={0}{90},
цветная полоса,
% немного изменить стиль цветовой полосы
стиль цветовой полосы = {
тиковое расстояние = 200,
умакс=1600,
},
% этот ключ-значение необходим из-за `\ addplot graphics'
увеличитьпределы=ложь,
]
% импортировать "экспортированную" графику
\ добавить график [
хмин=0,
хмакс=50,
умин=0,
умакс=150,
] {P3};
% теперь попробуйте воспроизвести стиль экспортированной графики
\ addplot3 [
% для этого использования, например, функция «заполнение счетчика» .

dat};
\конец{ось}
\end{tikzpicture}
\begin{tikzpicture}
\начать{ось}[
% показать цветную полосу
цветная полоса,
%, потому что нет реального сюжета, на котором PGFPlots может получить «мета»
% данных из, их нужно указать вручную
точка мета мин=200,
точка мета макс=1800,
%%% здесь мы снова определяем необходимую цветовую карту и ее стиль
% мы хотим использовать постоянные интервалы в палитре
доступ к цветовой карте = кусочно-константная,
%, а также здесь мы должны снова указать лимиты ...
цветовой карты/целевой позиции min*=200,
цветовая карта/целевая позиция max*=1800,
% ... и используйте эту функцию, которая упрощает предоставление
% образцов в правильном положении
% (пожалуйста, ознакомьтесь с руководством по PGFPlots для получения более подробной информации)
цветовой карты/образца для = const,
% это похоже на приведенный выше пример
цветовая карта = {СМ} {
цветовой карты = {
% .