exponenta event banner

разброс

График рассеяния

  • Scatter plot

Описание

пример

scatter(x,y) создает график рассеяния с круговыми маркерами в местах, указанных векторами x и y. Этот тип графа также известен как график пузыря.

  • Для вывода на печать одного набора координат укажите x и y в виде векторов равной длины.

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

пример

scatter(x,y,sz) определяет размеры окружности. Чтобы использовать одинаковый размер для всех кругов, укажите sz как скаляр. Для печати каждой окружности с различным размером укажите sz в виде вектора или матрицы.

пример

scatter(x,y,sz,c) определяет цвета круга. Можно задать один цвет для всех окружностей или изменить цвет. Например, можно вывести на печать все красные круги, указав c как 'red'.

пример

scatter(___,'filled') заполняет круги. Используйте 'filled' с любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

scatter(___,mkr) указывает тип маркера.

пример

scatter(___,Name,Value) изменяет диаграмму рассеяния, используя один или несколько аргументов пары имя-значение. Например, 'LineWidth',2 устанавливает ширину контура маркера равной 2 точкам.

пример

scatter(ax,___) строит графики в осях, указанных ax вместо в текущие оси. Выбор ax может предшествовать любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

s = scatter(___) возвращает значение Scatter объект или массив Scatter объекты. Использовать s для изменения диаграммы рассеяния после ее создания.

Примеры

свернуть все

Создать x как 200 равноотстоящих значений между 0 и . Создать y как косинусные значения со случайным шумом. Затем создайте график рассеяния.

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);  
scatter(x,y)

Figure contains an axes. The axes contains an object of type scatter.

Создайте график рассеяния с использованием окружностей с различными размерами. Укажите размер в точках в квадрате

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = linspace(1,100,200);
scatter(x,y,sz)

Figure contains an axes. The axes contains an object of type scatter.

Соответствующие элементы в x, y, и sz определите местоположение и размер каждого круга. Для вывода на печать всех окружностей с равной площадью укажите sz как числовой скаляр.

Создайте график рассеяния и измените цвет окружности.

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
c = linspace(1,10,length(x));
scatter(x,y,[],c)

Figure contains an axes. The axes contains an object of type scatter.

Соответствующие элементы в x, y, и c определите местоположение и цвет каждого круга. scatter функция отображает элементы в c к цветам в текущей карте цветов.

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

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = 25;
c = linspace(1,10,length(x));
scatter(x,y,sz,c,'filled')

Figure contains an axes. The axes contains an object of type scatter.

Создание векторов x и y как синусоидальные и косинусные значения со случайным шумом. Затем создайте график рассеяния и используйте алмазные маркеры площадью 140 точек в квадрате.

theta = linspace(0,2*pi,150);
x = sin(theta) + 0.75*rand(1,150);
y = cos(theta) + 0.75*rand(1,150);  
sz = 140;
scatter(x,y,sz,'d')

Figure contains an axes. The axes contains an object of type scatter.

Создание векторов x и y как синусоидальные и косинусные значения со случайным шумом. Создайте график рассеяния и задайте цвет кромки маркера, цвет грани маркера и ширину линии.

theta = linspace(0,2*pi,300);
x = sin(theta) + 0.75*rand(1,300);
y = cos(theta) + 0.75*rand(1,300);  
sz = 40;
scatter(x,y,sz,'MarkerEdgeColor',[0 .5 .5],...
              'MarkerFaceColor',[0 .7 .7],...
              'LineWidth',1.5)

Figure contains an axes. The axes contains an object of type scatter.

Можно изменить прозрачность рассеянных точек, задав значение AlphaData для вектора с различными значениями непрозрачности. Чтобы гарантировать, что график рассеяния использует AlphaData значения, установите MarkerFaceAlpha свойство для 'flat'.

Создайте набор нормально распределенных случайных чисел. Затем создайте график рассеяния данных с заполненными маркерами.

x = randn(1000,1);
y = randn(1000,1);
s = scatter(x,y,'filled');

Figure contains an axes. The axes contains an object of type scatter.

Установите непрозрачность каждой точки в соответствии с ее расстоянием от нуля.

distfromzero = sqrt(x.^2 + y.^2);
s.AlphaData = distfromzero;
s.MarkerFaceAlpha = 'flat';

Figure contains an axes. The axes contains an object of type scatter.

Начиная с R2019b, можно отобразить мозаику графиков с помощью tiledlayout и nexttile функции. Позвоните в tiledlayout для создания компоновки мозаичной диаграммы «2 на 1». Позвоните в nexttile для создания объектов осей ax1 и ax2. Постройте график разбросанных данных в каждой оси. На нижнем графике рассеяния укажите алмазные маркеры, заполненные ромбом.

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
tiledlayout(2,1)

% Top plot
ax1 = nexttile;
scatter(ax1,x,y)

% Bottom plot
ax2 = nexttile;
scatter(ax2,x,y,'filled','d')

Figure contains 2 axes. Axes 1 contains an object of type scatter. Axes 2 contains an object of type scatter.

Создайте график рассеяния и верните объект серии рассеяния. s.

theta = linspace(0,1,500);
x = exp(theta).*sin(100*theta);
y = exp(theta).*cos(100*theta);
s = scatter(x,y);

Figure contains an axes. The axes contains an object of type scatter.

Использовать s запрос и установка свойств серии рассеивателей после ее создания. Задайте ширину линии как 0.6 точка. Установите синий цвет края маркера. Задайте цвет грани маркера с помощью триплета RGB.

s.LineWidth = 0.6;
s.MarkerEdgeColor = 'b';
s.MarkerFaceColor = [0 0.5 0.5];

Figure contains an axes. The axes contains an object of type scatter.

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

свернуть все

x-координаты, заданные как скаляр, вектор или матрица. Размер и форма x зависит от формы данных. В этой таблице описаны наиболее распространенные ситуации.

Тип графикаУказание координат
Одиночная точка

Определить x и y как скаляры. Например:

scatter(1,2)

Один набор точек

Определить x и y как любая комбинация векторов строк или столбцов одинаковой длины. Например:

scatter([1 2 3],[4; 5; 6])

Несколько наборов точек разных цветов

Если все наборы имеют одинаковые координаты x или y, укажите общие координаты как вектор, а другие координаты - как матрицу. Длина вектора должна соответствовать одной из размерностей матрицы. Например:

scatter([1 2 3],[4 5 6; 7 8 9])
Если матрица квадратная, scatter отображает отдельный набор точек для каждого столбца в матрице.

Либо укажите x и y в виде матриц одинакового размера. В этом случае scatter строит графики для каждого столбца y по соответствующему столбцу x. Например:

scatter([1 3 5; 2 4 6],[10 25 45; 20 40 60])

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

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

Тип графикаУказание координат
Одиночная точка

Определить x и y как скаляры. Например:

scatter(1,2)

Один набор точек

Определить x и y как любая комбинация векторов строк или столбцов одинаковой длины. Например:

scatter([1 2 3],[4; 5; 6])

Несколько наборов точек разных цветов

Если все наборы имеют одинаковые координаты x или y, укажите общие координаты как вектор, а другие координаты - как матрицу. Длина вектора должна соответствовать одной из размерностей матрицы. Например:

scatter([1 2 3],[4 5 6; 7 8 9])
Если матрица квадратная, scatter отображает отдельный набор точек для каждого столбца в матрице.

Либо укажите x и y в виде матриц одинакового размера. В этом случае scatter строит графики для каждого столбца y по соответствующему столбцу x. Например:

scatter([1 3 5; 2 4 6],[10 25 45; 20 40 60])

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

Размер маркера, заданный как числовой скаляр, вектор, матрица или пустой массив ([]). Размер определяет площадь каждого маркера в точках в квадрате. Пустой массив задает размер по умолчанию, равный 36 точкам. Способ задания размера зависит от способа задания x и yи как ты хочешь, чтобы сюжет выглядел. В этой таблице описаны наиболее распространенные ситуации.

Требуемые размеры маркераx и y szПример

Одинаковый размер для всех точек

Любая действительная комбинация векторов или матриц, описанных для x и y.

Скаляр

Определить x как вектор, y в виде матрицы, и sz как скаляр.

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
scatter(x,y,100)

Различный размер для каждой точки

Векторы одинаковой длины

  • Вектор с той же длиной, что и x и y.

  • Матрица по крайней мере с одним размером, соответствующим длинам x и y. Указание матрицы полезно для отображения нескольких маркеров с различными размерами в каждом местоположении (x, y).

Определить x, y, и sz в качестве векторов.

x = [1 2 3 4];
y = [1 3 2 4];
sz = [80 150 700 50];
scatter(x,y,sz)

Определить x и y как векторы и sz в виде матрицы.

x = [1 2 3 4];
y = [1 3 2 4];
sz = [80 30; 150 900; 50 2000; 200 350];
scatter(x,y,sz)

Различный размер для каждой точки

По крайней мере один из x или y является матрицей для печати нескольких наборов данных

  • Вектор с тем же количеством элементов, что и точки в каждом наборе данных.

  • Матрица, размер которой совпадает с размером x или y матрица.

Определить x как вектор, y в виде матрицы, и sz в виде вектора.

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
sz = [80 150 50 700];
scatter(x,y,sz)

Определить x как вектор, y в виде матрицы, и sz в виде матрицы того же размера, что и y.

x = [1 2 3 4];
y = [1 6; 3 8; 2 7; 4 9];
sz = [80 30; 150 900; 50 2000; 200 350];
scatter(x,y,sz)

Цвет маркера, указанный как имя цвета, триплет RGB, матрица триплетов RGB или вектор индексов карты цветов.

  • Имя цвета - имя цвета, например 'red'или короткое имя, например 'r'.

  • Триплет RGB - трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1]; например, [0.4 0.6 0.7]. Триплеты RGB полезны для создания пользовательских цветов.

  • Матрица триплетов RGB - трёхколонная матрица, в которой каждая строка является триплетом RGB.

  • Вектор индексов карты цветов - вектор числовых значений той же длины, что и x и y векторы.

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

Цветовая схемаОпределение цветаПример

Используйте один цвет для всех точек.

Укажите имя цвета или короткое имя из приведенной ниже таблицы или укажите один триплет RGB.

Постройте график одного набора точек и задайте цвет как 'red'.

scatter(1:4,[2 5 3 7],[],'red')

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

scatter(1:4,[2 5; 1 2; 8 4; 11 9],[],[1 0 0])

Назначьте разные цвета каждой точке с помощью карты цветов.

Укажите вектор строки или столбца чисел. Индекс чисел в текущем массиве карты цветов. Наименьшее значение соответствует первой строке в карте цветов, а наибольшее - последней строке. Промежуточные значения отображаются линейно промежуточным строкам.

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

Этот метод можно использовать только в том случае, если x, y, и sz все векторы.

Создание вектора c указывает четыре индекса карты цветов. Постройте график из четырех точек, используя цвета текущей карты цветов. Затем измените карту цветов на winter.

c = 1:4;
scatter(1:4,[2 5 3 7],[],c)
colormap(gca,'winter')

Создайте пользовательский цвет для каждой точки.

Задайте матрицу m-на-3 триплетов RGB, где m - количество точек на графике.

Этот метод можно использовать только в том случае, если x, y, и sz все векторы.

Создание матрицы c задает триплеты RGB для зеленого, красного, серого и фиолетового цветов. Затем создайте график рассеяния из четырех точек с использованием этих цветов.

c = [0 1 0; 1 0 0; 0.5 0.5 0.5; 0.6 0 1];
scatter(1:4,[2 5 3 7],[],c)

Создайте разные цвета для каждого набора данных.

Укажите матрицу n-на-3 триплетов RGB, где n - количество наборов данных.

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

Создание матрицы c содержит две тройки RGB. Затем постройте график двух наборов данных с использованием этих цветов.

c = [1 0 0; 0.6 0 1];
s = scatter(1:4,[2 5; 1 2; 8 4; 11 9],[],c)

Имена цветов и триплеты 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'

Вот триплеты 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'

Тип маркера, указанный как одно из значений, перечисленных в этой таблице.

МаркерОписание
'o'Круг
'+'Знак «Плюс»
'*'Звездочка
'.'Пункт
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
's'Квадрат
'd'Алмаз
'^'Треугольник, направленный вверх
'v'Треугольник, направленный вниз
'>'Прямоугольный треугольник
'<'Треугольник, указывающий влево
'p'Пентаграмма
'h'Hexagram

Параметр для заполнения внутреннего пространства маркеров, указанный как 'filled'. Используйте этот параметр для маркеров, имеющих грань, например: 'o' или 'square'. Маркеры, не имеющие грани и содержащие только ребра, не рисуются ('+', '*', '.', и 'x').

'filled' установка параметра MarkerFaceColor имущества Scatter объект в 'flat' и MarkerEdgeColor свойство для 'none'так что грани маркера рисуются, а края - нет.

Целевые оси, указанные как Axes объект, a PolarAxes объект или GeographicAxes объект. Если оси не заданы и если текущие оси декартовы, то scatter функция использует текущие оси. Для вывода на печать полярных осей задайте PolarAxes объект в качестве первого входного аргумента или используйте polarscatter функция. Для построения графика по географическим осям задайте GeographicAxes объект в качестве первого входного аргумента или используйте geoscatter функция.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'MarkerFaceColor','red' устанавливает красный цвет грани маркера.

Scatter перечисленные здесь свойства объекта являются только подмножеством. Полный список см. в разделе Свойства разброса.

Цвет контура маркера, указан 'flat', триплет RGB, шестнадцатеричный цветовой код, имя цвета или короткое имя. Значение по умолчанию 'flat' использует цвета из CData собственность.

Для пользовательского цвета укажите триплет 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'

Пример: [0.5 0.5 0.5]

Пример: 'blue'

Пример: '#D2F9A7'

Цвет заливки маркера, указанный как 'flat', 'auto', триплет RGB, шестнадцатеричный цветовой код, имя цвета или короткое имя. 'flat' параметр использует CData значения. 'auto' использует тот же цвет, что и Color свойство для осей.

Для пользовательского цвета укажите триплет 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'

Пример: [0.3 0.2 0.1]

Пример: 'green'

Пример: '#D2F9A7'

Ширина кромки маркера, заданная как положительное значение в единицах измерения точки.

Пример: 0.75

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

свернуть все

Scatter объект или массив Scatter объекты. Использовать s для изменения свойств диаграммы рассеяния после ее создания.

Расширенные возможности

Представлен до R2006a