exponenta event banner

fcontour

Описание

пример

fcontour(f) строит контурные линии функции z = f(x,y) для постоянных уровней z за интервал по умолчанию [-5 5] для x и y.

пример

fcontour(f,xyinterval) графики на указанном интервале. Использование одного и того же интервала для обоих x и y, указать xyinterval как двухэлементный вектор вида [min max]. Для использования различных интервалов укажите четырехэлементный вектор формы [xmin xmax ymin ymax].

fcontour(___,LineSpec) задает стиль и цвет линий горизонталей. Например, '-r' указывает красные линии. Используйте эту опцию после любой из предыдущих комбинаций входных аргументов.

пример

fcontour(___,Name,Value) задает свойства строки, используя один или несколько аргументов пары имя-значение.

fcontour(ax,___) строит графики в осях, указанных ax вместо текущих осей.

пример

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

Примеры

свернуть все

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

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

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

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

Постройте график кусочного ввода

erf (x) + cos (y) -5 < x < 0sin (x) + cos (y) 0 < x < 5

более -5 < y < 5.

fcontour(@(x,y) erf(x) + cos(y),[-5 0 -5 5])
hold on
fcontour(@(x,y) sin(x) + cos(y),[0 5 -5 5])
hold off
grid on

Figure contains an axes. The axes contains 2 objects of type functioncontour.

Постройте график контуров x2-y2 в виде пунктирных линий с шириной линии 2.

f = @(x,y) x.^2 - y.^2;
fcontour(f,'--','LineWidth',2)

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

Постройте график sin (x) + cos (y) и x-y на одной оси с помощью hold on.

fcontour(@(x,y) sin(x)+cos(y))
hold on
fcontour(@(x,y) x-y)
hold off

Figure contains an axes. The axes contains 2 objects of type functioncontour.

Постройте график контуров e- (x/3) 2- (y/3) 2 + e- (x + 2) 2- (y + 2) 2. Назначение объекта контура функции переменной.

f = @(x,y) 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: @(x,y)exp(-(x/3).^2-(y/3).^2)+exp(-(x+2).^2-(y+2).^2)
    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

Изменение ширины линии на 1 и стиль линии к пунктирной линии с помощью точечной нотации для задания свойств объекта контура функции. Показать контуры, близкие к 0 и 1 путем установки LevelList собственность. Добавьте панель цветов.

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

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

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

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

f = @(x,y) 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.

Если требуется интерполяционное затенение, используйте fsurf функцию и установить ее 'EdgeColor' опция для 'none' за которой следует команда view(0,90).

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

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

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

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

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

f = @(x,y) sin(x).*sin(y);
tiledlayout(2,1)
nexttile
fcontour(f)
title('Default Mesh Density (71)')

nexttile
fcontour(f,'MeshDensity',200)
title('Custom Mesh Density (200)')

Figure contains 2 axes. Axes 1 with title Default Mesh Density (71) contains an object of type functioncontour. Axes 2 with title Custom Mesh Density (200) contains an object of type functioncontour.

Постройте график xsin (y) -ycos (x). Отображение линий сетки, добавление заголовка и добавление меток осей.

fcontour(@(x,y) x.*sin(y) - y.*cos(x), [-2*pi 2*pi], 'LineWidth', 2);
grid on
title({'xsin(y) - ycos(x)','-2\pi < x < 2\pi and -2\pi < y < 2\pi'})
xlabel('x')
ylabel('y')

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

Задайте значения засечек по оси X и связанные с ними метки, установив значение XTickLabel и XTick свойства объекта оси. Доступ к объекту-осям с помощью gca. Аналогично, задайте значения засечек по оси Y и связанные с ними метки.

ax = gca;
ax.XTick = ax.XLim(1):pi/2:ax.XLim(2);
ax.XTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'};
ax.YTick = ax.YLim(1):pi/2:ax.YLim(2);
ax.YTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'};

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

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

свернуть все

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

Укажите функцию формы z = f(x,y). Функция должна принимать два входных аргумента матрицы и возвращать выходной аргумент матрицы одинакового размера. Для достижения максимальной производительности используйте операторы массива вместо матричных операторов. Например, использовать .* (times) вместо * (mtimes).

Пример: f = @(x,y) sin(x) + cos(y);

Интервал печати для x и y, указанные в одной из следующих форм:

  • Вектор формы [min max] - Использовать интервал [min max] для обоих x и y.

  • Вектор формы [xmin xmax ymin ymax] - Использовать интервал [xmin xmax] для x и [ymin ymax] для y.

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

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

Пример: '--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

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

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

Пример: 3.4

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

Цвет горизонталей, указанный как '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'

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

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

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

свернуть все

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

См. также

Функции

Свойства

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