Progress-servis55.ru

Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Контурный график matlab

contour

Contour plot of matrix

Syntax

Description

contour( Z ) creates a contour plot containing the isolines of matrix Z , where Z contains height values on the x— y plane. MATLAB ® automatically selects the contour lines to display. The column and row indices of Z are the x and y coordinates in the plane, respectively.

contour( X , Y , Z ) specifies the x and y coordinates for the values in Z .

contour( ___ , levels ) specifies the contour lines to display as the last argument in any of the previous syntaxes. Specify levels as a scalar value n to display the contour lines at n automatically chosen levels (heights). To draw the contour lines at specific heights, specify levels as a vector of monotonically increasing values. To draw the contours at one height ( k ), specify levels as a two-element row vector [k k] .

contour( ___ , LineSpec ) specifies the style and color of the contour lines.

contour( ___ , Name,Value ) specifies additional options for the contour plot using one or more name-value pair arguments. Specify the options after all other input arguments. For a list of properties, see Contour Properties .

contour( ax , ___ ) displays the contour plot in the target axes. Specify the axes as the first argument in any of the previous syntaxes.

M = contour( ___ ) returns the contour matrix M , which contains the ( x, y) coordinates of the vertices at each level.

[ M , c ] = contour( ___ ) returns the contour matrix and the contour object c . Use c to set properties after displaying the contour plot.

Examples

Contours of a Function

Create matrices X and Y , that define a gr >xy plane. Define matrix Z as the heights above that gr >Z .

Contours at Twenty Levels

Define Z as a function of X and Y . In this case, call the peaks function to create X , Y , and Z . Then plot 20 contours of Z .

Contours at One Level

Display the contours of the peaks function at Z = 1 .

Dashed Contour Lines

Create a contour plot of the peaks function, and specify the dashed line style.

Contours with Labels

Define Z as a function of two variables, X and Y . Then create a contour plot of that function, and display the labels by setting the ShowText property to ‘on’ .

Custom Line Width

Create a contour plot of the peaks function. Make the contour lines thicker by setting the LineWidth property to 3 .

Contours Over Discontinuous Surface

Insert NaN values wherever there are discontinuities on a surface. The contour function does not draw contour lines in those regions.

Define matrix Z as a sampling of the peaks function. Replace all values in column 26 with NaN values. Then plot the contours of the modified Z matrix.

Input Arguments

X — x-coordinates
matrix | vector

x-coordinates, specified as a matrix the same size as Z , or as a vector with length n , where [m,n] = size(Z) . The default value of X is the vector (1:n) .

When X is a matrix, the values must be strictly increasing or decreasing along one dimension and remain constant along the other dimension. The dimension that varies must be the opposite of the dimension that varies in Y . You can use the meshgrid function to create X and Y matrices.

When X is a vector, the values must be strictly increasing or decreasing.

Example: X = 1:10

Example: X = [1 2 3; 1 2 3; 1 2 3]

Example: [X,Y] = meshgrid(1:10)

The XData property of the Contour object stores the x-coordinates.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Y — y-coordinates
matrix | vector

y-coordinates, specified as a matrix the same size as Z , or as a vector with length m , where [m,n] = size(Z) . The default value of Y is the vector (1:m) .

When Y is a matrix, the values must be strictly increasing or decreasing along one dimension and remain constant along the other dimension. The dimension that varies must be the opposite of the dimension that varies in X . You can use the meshgrid function to create the X and Y matrices.

Читать еще:  Matlab целая часть числа

When Y is a vector, the values must be strictly increasing or decreasing.

Example: Y = 1:10

Example: Y = [1 1 1; 2 2 2; 3 3 3]

Example: [X,Y] = meshgrid(1:10)

The YData property of the Contour object stores the y-coordinates.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Z — z-coordinates
matrix

z-coordinates, specified as a matrix. This matrix must have at least two rows and two columns, and it must contain at least two different values.

Example: Z = peaks(20)

The ZData property of the Contour object stores the z-coordinates.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

levels — Levels
scalar | vector

Contour levels, specified as a scalar whole number or a vector. Use this argument to control the number and location of the contour lines. When you do not specify the levels, the contour function chooses the levels automatically.

To draw contour lines at n automatically chosen heights, specify levels as the scalar value n.

To draw the contour lines at specific heights, specify levels as a vector of monotonically increasing values.

To draw contour lines at a single height k , specify levels as a two-element row vector [k k] .

Example: contour(peaks,10) draws contour lines at 10 automatically chosen heights on the peaks function.

Example: contour(peaks,[-4 0 4]) draws contour lines at 3 specific heights on the peaks function: -4 , 0 , and 4 .

Example: contour(peaks,[3 3]) draws contour lines to show where the height of the peaks function is 3 .

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

LineSpec — Line style and color
character vector | string scalar

Line style and color, specified as a character vector or string scalar containing line style symbols, color options, or both. The line style symbols are listed in the following table, and they can appear in any order. Marker symbols such as ‘o’ are ignored.

You do not need to specify both the line style and the color. For example, if you omit the line style and specify the color, then the plot shows solid lines using the specified color.

Контурный график matlab

Обычная графика MATLAB

Построение графиков точками и отрезками прямых

Графики в логарифмическоми полулогарифмическом масштабе

Гистограммы и диаграммы

Графики специальных типов

Создание массивов данных для трехмерной графики

Построение графиков трехмерных поверхностей, сечений и контуров

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

Средства оформления графиков

Одновременный вывод нескольких графиков

Управление цветовой палитрой

Окраска трехмерных поверхностей

Двумерные и трехмерные графические объекты

Одно из достоинств системы MATLAB — обилие средств графики, начиная от команд построения простых графиков функций одной переменной в декартовой системе координат и кончая комбинированными и презентационными графиками с элементами анимации, а также средствами проектирования графического пользовательского интерфейса (GUI). Особое внимание в системе уделено трехмерной графике с функциональной окраской отображаемых фигур и имитацией различных световых эффектов.

Описанию графических функций и команд посвящена обширная электронная книга в формате PDF. Объем материала по графике настолько велик, что помимо вводного описания графики в уроке 3 в этой книге даются еще два урока по средствам обычной и специальной графики. Они намеренно предшествуют систематизированному описанию большинства функций системы MATLAB, поскольку графическая визуализация вычислений довольно широко используется в последующих материалах книги. При этом графические средства системы доступны как в командном режиме вычислений, так и в программах. Этот урок рекомендуется изучать выборочно или выделить на него не менее 4 часов.

Построение графиков отрезками прямых

Функции одной переменной у(х) находят широкое применение в практике математических и других расчетов, а также в технике компьютерного математического моделирования. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При этом обычно строятся две оси — горизонтальная X и вертикальная Y, и задаются координаты х и у, определяющие узловые точки функции у(х). Эти точки соединяются друг с другом отрезками прямых, т. е. при построении графика осуществляется линейная интерполяция для промежуточных точек. Поскольку MATLAB — матричная система, совокупность точек у(х) задается векторами X и Y одинакового размера.

Читать еще:  Matlab 3d график

Команда plot служит для построения графиков функций в декартовой системе координат. Эта команда имеет ряд параметров, рассматриваемых ниже.

plot (X, Y) — строит график функции у(х), координаты точек (х, у) которой берутся из векторов одинакового размера Y и X. Если X или Y — матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы.

Приведенный ниже пример иллюстрирует построение графиков двух функций — sin(x) и cos(x), значения функции которых содержатся в матрице Y, а значения аргумента х хранятся в векторе X:

На рис. 6.1 показан график функций из этого примера. В данном случае отчетливо видно, что график состоит из отрезков, и если вам нужно, чтобы отображаемая функция имела вид гладкой кривой, необходимо увеличить количество узловых точек. Расположение их может быть произвольным.

Рис. 6.1. Графики двух функций в декартовой системе координат

plot(Y) — строит график у(г), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Если Y содержит комплексные элементы, то выполняется команда plot (real (Y). imag(Y)). Во всех других случаях мнимая часть данных игнорируется.

Вот пример использования команды plot(Y):

Соответствующий график показан на рис. 6.2.

Рис. 6.2. График функции, представляющей вектор Y с комплексными элементами

plot(X.Y.S) — аналогична команде plot(X.Y), но тип линии графика можно задавать с помощью строковой константы S.

Значениями константы S могут быть следующие символы.

Подготовка графиков в MatLab

В написании научных статей немалую часть времени занимает подготовка иллюстраций, графиков и диаграмм. Хочу поделиться некоторыми мыслями и примерами того, как можно ускорить этот процесс. Материал пригодиться тем, кто пользуется системой MatLab.

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

Прежде всего, необходимо настроить шрифты, которые будут использоваться для вывода значений осей и надписей на графиках, что также помогает в случаях неправильного отображения надписей на русском языке:

Затем необходимо настроить размер графика и его положение на экране, например, с отображением на весь экран:

При необходимости вставляем название графика:

Далее можно включить построение нескольких графиков в одном окне, c использованием тех же осей и свойств графика:

Строим графики с определенным цветом, стилем и толщиной линии:

Вставляем легенду в график с определенным положением на рисунке, например справа внизу:

При построении графика в MatLab дробные значения подписей на осях координат отображаются с разделителем в виде точки, тогда как, разделитель дробной и целой части у нас принято отображать запятой.

Чтобы не изменять вручную все значения подписей данных осей через меню графика,

Код «прореживает» подписи осей x и y, а также исправляет точки на запятые в подписях на оси y. Для других осей необходимо повторить аналогичные процедуры.

И в заключении отобразим линии координатной сетки:

Для удобства использования, чтобы не повторять каждый раз эти действия, заключаем написанный код в функцию, в параметрах которой указываются настройки отображения графиков и их данные.

Выполним с заранее подготовленными данными.

В результате получаем вот такой график:

По умолчанию MatLab отображает греческую букву «фи» как в кириллице «ф». Одним из способов отобразить привычную греческую букву «фи» с петлеобразным начертанием, является выбор специального шрифта c греческими буквами. Скачиваем, например, шрифт Greek Normal отсюда и устанавливаем. Просмотрев шрифт Greek в таблице символов, замечаем, что в этом шрифте буква «фи» существует в двух вариантах, причем для кода латинской «f» получим тот же результат что и в MatLab в виде «ф», а для кода латинской «j» должен быть получен требуемый результат.

Читать еще:  Объединение матриц matlab

В результате использования приведенного кода для построения графиков с помощью системы MatLab удалось:

  • Решить проблему с некорректным отображением кириллических шрифтов;
  • Автоматически заменить разделитель целой и дробной части числа с точки на запятую в графике;
  • Отобразить греческую букву фи в петлеобразном начертании.

PS Если кто-то знает простой способ отобразить символ греческой буквы «фи» с кодом unicode-03С6 в графиках MatLab, напишите пожалуйста в комментариях.

UPD Еще один способ, подсказанный в комментариях, для отображения «фи» с петлеобразным начертанием:

Контурный график matlab

Contour graph of a matrix

A contour graph displays isolines of matrix Z . Label the contour lines using clabel .

contour(Z) draws a contour plot of matrix Z , where Z is interpreted as heights with respect to the xy plane. Z must be at least a 2-by-2 matrix. The number of contour levels and the values of the contour levels are chosen automatically based on the minimum and maximum values of Z . The ranges of the x— and y-axis are [1:n] and [1:m] , where [m,n] = size(Z) .

contour(Z,n) draws a contour plot of matrix Z with n contour levels.

contour(Z,v) draws a contour plot of matrix Z with contour lines at the data values specified in vector v . The number of contour levels is equal to length(v) . To draw a single contour of level i , use contour(Z,[i i]) .

contour(X,Y,Z) , contour(X,Y,Z,n) , and contour(X,Y,Z,v) draw contour plots of Z . X and Y specify the x— and y-axis limits. When X and Y are matrices, they must be the same size as Z , in which case they specify a surface, as defined by the surf function.

If X or Y is irregularly spaced, contour calculates contours using a regularly spaced contour grid, then transforms the data to X or Y .

contour(. LineSpec) draws the contours using the line type and color specified by LineSpec . contour ignores marker symbols.

[C,h] = contour(. ) returns the contour matrix C (see contourc ) and a handle to a contourgroup object. clabel uses the contour matrix C to create the labels. (See descriptions of contourgroup object properties.)

Backward Compatible Version

[C,h] = contour(‘v6’. ) returns the contour matrix C (see contourc ) and a vector of handles to graphics objects. clabel uses the contour matrix C to create the labels. contour creates patch graphics objects unless you specify a LineSpec , in which case contour creates line graphics objects.

If you do not specify the LineSpec argument, the figure colormap ( colormap ) and the color limits ( caxis ) control the color of the contour lines. In this case the contour function creates patch objects to implement the contour plot.

When you specify the LineSpec argument, the contour function creates line object to implement the contour plot. In this case, contour lines are not mapped to colors in the figure colormap, but are colored using the colors defined in the axes ColorOrder property.

Use contourgroup object properties to control the contour plot appearance.

The following diagram illustrates the parent-child relationship in contour plots.

Contour Plot of a Function

To view a contour plot of the function

over the range -2 x 2, -2 y 3, create matrix Z using the statements

Then, generate a contour plot of Z .

  • Display contour labels by setting the ShowText property to on .
  • Label every other contour line by setting the TextStep property to twice the contour interval (i.e., two times the LevelStep property).
  • Use a smoothly varying colormap.

Smoothing Contour Data

You can use interp2 to create smoother contours. Also set the contour label text BackgroundColor to a light yellow and the EdgeColor to light gray.

Setting the Axis Limits on Contour Plots

Suppose, for example, your data represents a region that is 1000 meters in the x dimension and 3000 meters in the y dimension. You could use the following statements to set the axis limits correctly:

See Contourgroup Properties for poperty descriptions

Ссылка на основную публикацию
Adblock
detector