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(___) возвращает функциональный объект контура. Используйте объект запросить и изменить свойства определенного контурного графика. Для получения дополнительной информации смотрите FunctionContour Properties.

Примеры

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

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

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-Value, они применяются ко всем контурным графикам. Вы не можете задать отдельный LineStyle и Аргументы пары "имя-значение" для каждого графика.

Разделите фигуру на два подграфика при помощи 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 анимируйте параметрическую кривую sin i (x) + cos i (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].

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

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

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

Режим выбора для 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 дюйма. Если у линии есть маркеры, ширина линии также влияет на края маркера.

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

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

свернуть все

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

Алгоритмы

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

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

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