exponenta event banner

fcontour

Описание

пример

fcontour(f) строит контурные линии символического выражения f (x, y) на интервале по умолчанию x и y, который является [-5 5].

пример

fcontour(f,[min max]) сюжеты f за интервал min < x < max и min < y < max.

пример

fcontour(f,[xmin xmax ymin ymax]) сюжеты f за интервал xmin < x < xmax и ymin < y < ymax. fcontour функции использует symvar упорядочить переменные и назначить интервалы.

пример

fcontour(___,LineSpec) использование LineSpec для задания стиля и цвета линии. fcontour не поддерживает маркеры.

пример

fcontour(___,Name,Value) задание свойств линий с использованием одного или нескольких Name,Value аргументы пары. Используйте эту опцию с любой из комбинаций входных аргументов в предыдущих синтаксисах. Name,Value параметры пары применяются ко всем выводимым на печать линиям. Чтобы задать опции для отдельных графиков, используйте объекты, возвращаемые fcontour.

fcontour(ax,___) печать в объекте-осях ax вместо текущего объекта-оси gca.

пример

fc = fcontour(___) возвращает объект контура функции. Используйте объект для запроса и изменения свойств определенного графика горизонталей. Дополнительные сведения см. в разделе Функции Свойства контура.

Примеры

Печать горизонталей символьного выражения

Постройте контуры sin (x) + cos (y) в диапазоне по умолчанию -5 < x < 5 и -5 < y < 5. Покажите панель цветов. Найдите уровень контура, сопоставив его цвет со значением colorbar.

syms x y
fcontour(sin(x) + cos(y))
colorbar

Figure contains an axes. The axes contains an object of type functioncontour.

Печать горизонталей символьной функции

Постройте график контуров f (x, y) = sin (x) + cos (y) в диапазоне по умолчанию -5 < x < 5 и -5 < y < 5.

syms f(x,y)
f(x,y) = sin(x) + cos(y);
fcontour(f)

Figure contains an axes. The axes contains an object of type functioncontour.

Задать интервал печати

Постройте график sin (x) + cos (y) над -λ/2 < x < λ/2 и 0 < y < 5, указав интервал печати в качестве второго аргументаfcontour.

syms x y
f = sin(x) + cos(y);
fcontour(f,[-pi/2 pi/2 0 5])

Figure contains an axes. The axes contains an object of type functioncontour.

Изменение стиля линии, цвета и ширины

Постройте график контуров x2-y2 синими пунктирными линиями, указав LineSpec вход. Укажите LineWidth из 2. Маркеры не поддерживаются fcontour.

syms x y
fcontour(x^2 - y^2,'--b','LineWidth',2)

Figure contains an axes. The axes contains an object of type functioncontour.

Печать нескольких контурных графиков на одной и той же фигуре

Печать нескольких контурных графиков путем передачи входных данных в виде вектора или с помощью hold on для последовательного построения графика на одной и той же фигуре. При указании LineStyle и аргументы «Имя» (Name) - значение, они применяются ко всем контурным графикам. Нельзя указать отдельного LineStyle и аргументы пары Имя (Name) - Значение (Value) для каждого графика.

Разделение фигуры на два вложенных графика с помощью subplot. На первом вложенном графике постройте график sin (x) + cos (y) и x-y с использованием векторного ввода. На втором вложенном графике постройте те же выражения с помощью hold on.

syms x y
subplot(2,1,1)
fcontour([sin(x)+cos(y) x-y])
title('Multiple Contour Plots Using Vector Inputs')

subplot(2,1,2)
fcontour(sin(x)+cos(y))
hold on
fcontour(x-y)
title('Multiple Contour Plots Using Hold Command')

hold off

Figure contains 2 axes. Axes 1 with title Multiple Contour Plots Using Vector Inputs contains 2 objects of type functioncontour. Axes 2 with title Multiple Contour Plots Using Hold Command contains 2 objects of type functioncontour.

Изменение графика горизонталей после создания

Постройте график контуров e- (x/3) 2- (y/3) 2 + e- (x + 2) 2- (y + 2) 2. Укажите вывод для выводаfcontour вернуть объект печати.

syms x y
f = exp(-(x/3)^2-(y/3)^2) + exp(-(x+2)^2-(y+2)^2);
fc = fcontour(f)

Figure contains an axes. The axes contains an object of type functioncontour.

fc = 
  FunctionContour with properties:

     Function: [1x1 sym]
    LineColor: 'flat'
    LineStyle: '-'
    LineWidth: 0.5000
         Fill: off
    LevelList: [0.2000 0.4000 0.6000 0.8000 1 1.2000 1.4000]

  Show all properties

Изменить LineWidth кому 1 и LineStyle к пунктирной линии с помощью точечной нотации для задания свойств объекта fc. Визуализация контуров вблизи 0 и 1 путем установки LevelList кому [1 0.9 0.8 0.2 0.1].

fc.LineStyle = '--';
fc.LineWidth = 1;
fc.LevelList = [1 0.9 0.8 0.2 0.1];
colorbar

Figure contains an axes. The axes contains an object of type functioncontour.

Область заливки между горизонталями

Заполните область между горизонталями, задав значение Fill вход fcontour кому 'on'. Если требуется интерполяционное затенение, используйте fsurf функция с опцией 'EdgeColor' установить в значение 'none' за которой следует команда view(0,90).

Создайте график, похожий на закат, заполнив контуры

erf ((y + 2) 3) -e (-0,65 ((x-2) 2 + (y-2) 2).

syms x y
f = erf((y+2)^3) - exp(-0.65*((x-2)^2+(y-2)^2));
fcontour(f,'Fill','on')

Figure contains an axes. The axes contains an object of type functioncontour.

Задание уровней для горизонталей

Установка значений, при которых fcontour рисует контуры с помощью 'LevelList' вариант.

syms x y
f = sin(x) + cos(y);
fcontour(f,'LevelList',[-1 0 1])

Figure contains an axes. The axes contains an object of type functioncontour.

Управляющее разрешение горизонталей

Управление разрешением горизонталей с помощью 'MeshDensity' вариант. Увеличение 'MeshDensity' позволяет сделать более плавные и точные графики, уменьшая при этом скорость печати.

Разделить фигуру на две с помощью subplot. На первом вложенном графике постройте контуры sin (x) sin (y). Углы квадратов не встречаются. Чтобы устранить эту проблему, увеличьте'MeshDensity' кому 200 на втором вложенном графике. Углы теперь встречаются, показывая, что, увеличивая 'MeshDensity' вы увеличиваете разрешение графика.

syms x y
subplot(2,1,1)
fcontour(sin(x).*sin(y))
title('Default MeshDensity = 71')

subplot(2,1,2)
fcontour(sin(x).*sin(y),'MeshDensity',200)
title('Increased MeshDensity = 200')

Figure contains 2 axes. Axes 1 with title Default MeshDensity = 71 contains an object of type functioncontour. Axes 2 with title Increased MeshDensity = 200 contains an object of type functioncontour.

Добавление меток заголовка и оси и засечек формата

Постройте график xsin (y) -ycos (x). Добавьте заголовок и метки оси. Создайте засечки оси X, охватывая пределы оси X с интервалами, равнымиpi/2. Отображение этих засечек с помощью XTick собственность. Создание меток оси X с помощью arrayfun подавать texlabel кому S. Отображение этих меток с помощью XTickLabel собственность. Повторите эти шаги для оси Y.

Сведения об использовании LaTeX на графиках см. в разделе latex.

syms x y
fcontour(x*sin(y)-y*cos(x), [-2*pi 2*pi])
grid on
title('xsin(y)-ycos(x) for -2\pi < x < 2\pi and -2\pi < y < 2\pi')
xlabel('x')
ylabel('y')
ax = gca;

S = sym(ax.XLim(1):pi/2:ax.XLim(2));
ax.XTick = double(S);
ax.XTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);

S = sym(ax.YLim(1):pi/2:ax.YLim(2));
ax.YTick = double(S);
ax.YTickLabel = arrayfun(@texlabel, S, 'UniformOutput', false);

Figure contains an axes. The axes with title xsin(y)-ycos(x) for -2\pi < x < 2\pi and -2\pi < y < 2\pi contains an object of type functioncontour.

Создание анимаций

Создание анимации путем изменения отображаемого выражения с помощью Function свойство дескриптора функции, а затем использование drawnow для обновления графика. Сведения об экспорте в GIF см. в разделе imwrite.

Изменяя переменную i от -λ/8 до δ/8, анимируйте параметрическую кривую isin (x) + icos (y).

syms x y
fc = fcontour(-pi/8.*sin(x)-pi/8.*cos(y));
for i=-pi/8:0.01:pi/8
    fc.Function = i.*sin(x)+i.*cos(y);
    drawnow
		pause(0.05)
end

Входные аргументы

свернуть все

Выражение или функция для печати, заданная как символическое выражение или функция.

Диапазон печати для x и y, заданный как вектор из двух чисел. Диапазон по умолчанию: [-5 5].

Диапазон печати для x и y, заданный как вектор из четырех чисел. Диапазон по умолчанию: [-5 5 -5 5].

Объект Axes. Если объект axes не указан, функция печати использует текущие оси.

Стиль и цвет линии, определяемые как вектор символа или строка, содержащая спецификатор стиля линии, спецификатор цвета или и то, и другое.

Пример: '--r' задает красные пунктирные линии

В этих двух таблицах перечислены стиль линий и параметры цвета.

Спецификатор стиля линииОписание
-Сплошная линия (по умолчанию)
--Пунктирная линия
:Пунктирная линия
-.Черточно-точечная линия
Спецификатор цветаОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'MeshDensity',30

Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Функции Свойства контура.

Количество точек оценки на направление, указанное как число. Значение по умолчанию: 71. Поскольку fcontour использует адаптивную оценку, фактическое количество точек оценки больше.

Пример: 30

Заливка между горизонталями, заданная как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

  • Значение 'on' заполните цветами пространства между горизонталями.

  • Значение 'off' оставляет пространства между горизонталями незаполненными.

Уровни горизонталей, заданные как вектор значений z. По умолчанию fcontour функция выбирает значения, которые охватывают диапазон значений в ZData собственность.

Установка этого свойства устанавливает для связанного свойства режима значение manual.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Режим выбора для LevelList, указанное как одно из следующих значений:

  • 'auto' - Определение значений на основе ZData значения.

  • 'manual' - Использовать значения, заданные вручную. Чтобы задать значения, установите LevelList собственность. Когда режим 'manual', LevelList значения не изменяются при изменении Function свойство или пределы.

Интервал между горизонталями, заданный как скалярное числовое значение. Например, укажите значение 2 для построения контурных линий с шагом 2. По умолчанию LevelStep определяется с помощью ZData значения.

Установка этого свойства устанавливает для связанного свойства режима значение 'manual'.

Пример: 3.4

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Режим выбора для LevelStep, указанное как одно из следующих значений:

  • 'auto' - Определите значение на основе ZData значения.

  • 'manual' - Использовать указанное вручную значение. Чтобы задать значение, установите значение LevelStep собственность. Когда режим 'manual', значение LevelStepMode не изменяется, когда Function свойство или изменение пределов.

Цвет горизонталей, указанный как 'flat', триплет RGB, шестнадцатеричный цветовой код, имя цвета или короткое имя. Чтобы использовать разные цвета для каждой линии контура, укажите 'flat'. Цвет определяется значением контура линии, картой цветов и масштабированием значений данных в карте цветов. Дополнительные сведения о цветовом масштабировании см. в разделе caxis.

Чтобы использовать один и тот же цвет для всех горизонталей, укажите триплет RGB, шестнадцатеричный код цвета, имя цвета или короткое имя.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код - это символьный вектор или строковый скаляр, начинающийся с хэш-символа (#), за которыми следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 кому F. Значения не чувствительны к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Можно также задать некоторые общие цвета по имени. В этой таблице перечислены параметры именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Имя цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'НеприменимоНеприменимоНеприменимоБез цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB ®, используемых на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Стиль линии, указанный в качестве одного из параметров, перечисленных в этой таблице.

Стиль линииОписаниеРезультирующая линия
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Пунктирная линия

'none'Без строкиБез строки

Ширина линии, заданная как положительное значение в точках, где 1 точка = 1/72 дюйма. Если линия имеет маркеры, то ширина линии также влияет на кромки маркера.

Ширина линии не может быть меньше ширины пикселя. Если задать для ширины линии значение, меньшее, чем ширина пикселя в системе, линия будет отображаться в виде одного пикселя в ширину.

Выходные аргументы

свернуть все

Один или несколько объектов контура функции, возвращаемых в виде скаляра или вектора. Эти объекты являются уникальными идентификаторами, которые можно использовать для запроса и изменения свойств определенного графика горизонталей. Дополнительные сведения см. в разделе Функции Свойства контура.

Алгоритмы

fcontour назначает символьные переменные в f в x ось, затем y ось, и symvar определяет порядок присваиваемых переменных. Поэтому имена переменных и осей могут не соответствовать друг другу. Вызвать fcontour чтобы назначить х или у соответствующей оси, создайте символическую функцию для печати, затем передайте символическую функцию в fcontour.

Например, следующий код отображает контур поверхности f (x, y) = sin (y) двумя способами. Первый путь заставляет волны колебаться относительно оси y. Второй способ присваивает оси x значение y, поскольку это первая (и единственная) переменная в символьной функции.

syms x y;
f(x,y) = sin(y);

figure;
subplot(2,1,1)
fcontour(f);
subplot(2,1,2)
fcontour(f(x,y)); % Or fcontour(sin(y));

Представлен в R2016a