Графические контуры
fcontour(
строит графики линий символьных выражений f (x, y) на интервале по умолчанию f
)x
и y, который [-5 5]
.
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
.
возвращает объект контура функции. Используйте объект для запроса и изменения свойств определенного контурного графика. Для получения дополнительной информации см. FunctionContour Properties.fc
= fcontour(___)
Постройте графики контуров по умолчанию область значений и . Показать шкалу палитры. Найдите уровень контура, сопоставив цвет контура со значением шкалы палитры.
syms x y fcontour(sin(x) + cos(y)) colorbar
Постройте графики контуров по умолчанию область значений и .
syms f(x,y)
f(x,y) = sin(x) + cos(y);
fcontour(f)
График и путем определения интервала графического изображения в качестве второго аргумента fcontour
.
syms x y f = sin(x) + cos(y); fcontour(f,[-pi/2 pi/2 0 5])
Постройте графики контуров как синие, штриховые линии путем определения LineSpec
вход. Задайте LineWidth
от 2
. Маркеры не поддерживаются fcontour
.
syms x y fcontour(x^2 - y^2,'--b','LineWidth',2)
Постройте несколько контурных графиков либо путем передачи входов в виде вектора, либо при помощи hold on
последовательно построить график на одном и том же рисунке. Если вы задаете LineStyle
и аргументы Name-Value, они применяются ко всем контурным графикам. Вы не можете задать отдельные LineStyle
и аргументы пары "имя-значение" для каждого графика.
Разделите рисунок на два подграфика при помощи subplot
. На первом подграфике постройте график и при помощи векторного входа. На втором подграфике постройте графики тех же выражений при помощи 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
Постройте графики контуров . Задайте выход для создания 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)
.
Создать график, похожий на закат, заполнив контуры
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
. В первой подграфике постройте график контуров . Углы квадратов не совпадают. Чтобы устранить эту проблему, увеличьте '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')
График . Добавьте заголовок и подписи по осям. Создайте такты на оси 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 до, анимируйте параметрическую кривую i sin (x) + i cos (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
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));