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 объект. Список свойств см. в разделе Свойства 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.

Объект осей. Если вы не задаете объект осей, то fcontour использует текущую систему координат.

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

Пример: '--r' задает красные штриховые линии

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

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

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

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

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

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

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

Пример: 30

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

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

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

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

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

Типы данных: 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 объекты, возвращенные в виде скаляра или вектора. Можно использовать эти объекты для запроса и изменения свойств определенного контурного графика. Список свойств см. в разделе Свойства FunctionContour.

См. также

Функции

Свойства

Введенный в R2016a