кривые уровней поверхности, залитые цветом на двумерном графике
contourf(x, y, z, nz, [style, strf, leg, rect, nax])
два вещественных вектор-столбца размрерами
n1
и n2
: сетка.
вещественная матрица размерами
(n1,n2)
, значения функции.
значения уровней либо количество уровней.
Если nz
- целое число, то
его значение указывает количество кривых
уровней, равномерно распределённых от zmin
до zmax
как показано ниже:
z= zmin + (1:nz)*(zmax-zmin)/(nz+1)
![]() | Заметьте, что уровни zmin
и zmax не рисуются
(вообще, они сводятся в точку), но их можно
добавить следующим образом: |
Если nz
- вектор, то
nz(i)
указывает значение
i
-той кривой уровня.
см. plot2d
. Аргумент
style
указывает цвета, которые
требуется использовать для кривых уровней. Он должен
быть того же самого размера, что и количество уровней.
Функция contourf
раскрашивает поверхность между
двумя следующими друг за другом кривых уровней поверхности
z=f(x,y)
на двумерном графике.
Значения f(x,y)
указываются с помощью матрицы
z
в точках сетки, определённых через
x
и y
.
Вы можете изменить формат чисел с плавающей запятой, печатаемых на
уровнях, с помощью xset("fpf",string)
, где
string
указывает форма в формате C-синтаксиса
(например, string="%.3f"
). Используйте
string=""
для переключения обратно в формат по
умолчанию.
Введите команду contourf()
, чтобы посмотреть демонстрацию.
contourf(1:10,1:10,rand(10,10),5,1:5,"011"," ",[0,0,11,11]) | ![]() | ![]() |
function z=peaks(x, y) x1=x(:).*.ones(1,size(y,'*')); y1=y(:)'.*.ones(size(x,'*'),1); z = (3*(1-x1).^2).*exp(-(x1.^2) - (y1+1).^2) ... - 10*(x1/5 - x1.^3 - y1.^5).*exp(-x1.^2-y1.^2) ... - 1/3*exp(-(x1+1).^2 - y1.^2) endfunction function z=peakit() x=-4:0.1:4;y=x;z=peaks(x,y); endfunction z=peakit(); levels=[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8]; m=size(levels,'*'); n = fix(3/8*m); r = [(1:n)'/n; ones(m-n,1)]; g = [zeros(n,1); (1:n)'/n; ones(m-2*n,1)]; b = [zeros(2*n,1); (1:m-2*n)'/(m-2*n)]; h = [r g b]; gcf().color_map = h; xset('fpf',' '); clf(); contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8],0*ones(1,m)) xset('fpf',''); clf(); contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8]); | ![]() | ![]() |