fcontour

Постройте контуры

Синтаксис

fcontour(f)
fcontour(f,[min max])
fcontour(f,[xmin xmax ymin ymax])
fcontour(___,LineSpec)
fcontour(___,Name,Value)
fcontour(ax,___)
fc = 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)+потому что(y) в области значений по умолчанию -5<x<5 и -5<y<5. Покажите шкалу палитры. Найдите уровень контура путем соответствия с цветом контура значению шкалы палитры.

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

Постройте контуры символьной функции

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

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

Определение интервала графического изображения

График sin(x)+потому что(y) -π/2<x<π/2 и 0<y<5 путем определения интервала графического вывода в качестве второго аргумента fcontour.

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

Измените стиль линии, цвет и ширину

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

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

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

Постройте несколько контурных графиков или путем передачи входных параметров как вектора или при помощи hold on, чтобы последовательно построить на той же фигуре. Если вы задаете аргументы LineStyle и Name-Value, они применяются ко всем контурным графикам. Вы не можете задать отдельный LineStyle и Аргументы пары "имя-значение" для каждого графика.

Разделите фигуру на два подграфика при помощи subplot. На первом подграфике, графике sin(x)+потому что(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

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

Постройте контуры 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)

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

Закрашенная область между контурами

Заполните область между контурами путем установки входа 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')

Определение уровней для линий контура

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

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

Управление разрешением линий контура

Управляйте разрешением линий контура при помощи опции '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')

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

График xsin(y)-yпотому что(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);

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

Создайте анимации путем изменения отображенного выражения с помощью свойства 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

Пример: 30

Заполните между линиями контура, заданными как одно из этих значений:

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

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

Очертите уровни, заданные как вектор 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

Для просмотра документации необходимо авторизоваться на сайте