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 Properties.

Примеры

свернуть все

Постройте контуры 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' задает красные пунктирные линии

Эти две таблицы приводят стиль линии и параметры цвета.

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

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

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

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

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

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

Пример: 30

Заполните между линиями контура в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно истине и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа 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 Properties.

Смотрите также

Функции

Свойства

Введенный в R2016a