Рой диаграмма поля точек
swarmchart(
отображает наклонную диаграмму, которая является графиком поля точек со смещением точек (джиттерированным) в x
,y
)x
-размерность. Точки образуют различные формы, и контур каждой формы аналогичен графику скрипки. Рой графики помогают вам визуализировать дискретные x
данные с распределением y
данные. В каждом месте в x
точки джиттерируются на основе оценки плотности ядра y
.
Чтобы построить график одного набора точек, задайте x
и y
как векторы равной длины.
Чтобы построить график нескольких наборов точек на одном и том же наборе осей, задайте хотя бы один из x
или y
как матрица.
swarmchart(___,
задает маркер, отличный от маркера по умолчанию, который является кругом. Задайте mkr
)mkr
после всех аргументов в любом из предыдущих синтаксисов.
swarmchart(___,
заполняет маркеры. Задайте 'filled'
)'filled'
опция после всех аргументов в любом из предыдущих синтаксисов.
swarmchart(___,
задает дополнительные свойства для графика роя, используя один или несколько Name,Value
)Name,Value
аргументы в виде пар. Задайте свойства после всех других входных параметров. Список свойств см. в разделе Свойств объекта Scatter.
swarmchart(
отображает наклонный график в целевых осях. Задайте оси перед всеми аргументами в любом из предыдущих синтаксисов.ax
,___)
s = swarmchart(___)
возвращает Scatter
объект или массив Scatter
объекты. Использование s
для изменения свойств графика после ее создания. Список свойств см. в разделе Свойств объекта Scatter.
Создайте вектор x
координаты и использование randn
функция для генерации нормально распределенных случайных значений для y
. Затем создайте рывковый график x
и y
.
x = [ones(1,500) 2*ones(1,500) 3*ones(1,500)]; y1 = 2 * randn(1,500); y2 = 3 * randn(1,500) + 5; y3 = 5 * randn(1,500) + 5; y = [y1 y2 y3]; swarmchart(x,y)
Создайте три набора x
и y
координаты. Используйте randn
функция для генерации случайных значений для y
.
x1 = ones(1,500); x2 = 2 * ones(1,500); x3 = 3 * ones(1,500); y1 = 2 * randn(1,500); y2 = [randn(1,250) randn(1,250) + 4]; y3 = 5 * randn(1,500) + 5;
Создайте график роя первого набора данных и задайте равномерный размер маркера 5
. Затем позвоните hold on
для построения графика второго и третьего наборов данных вместе с первым набором данных. Функции hold off
чтобы отпустить состояние удержания осей.
swarmchart(x1,y1,5) hold on swarmchart(x2,y2,5) swarmchart(x3,y3,5) hold off
Чтение BicycleCounts.csv
набор данных в расписание с именем tbl
. Этот набор данных содержит данные о велосипедном движении в течение определенного периода времени. Отображение первых пяти строк tbl
.
tbl = readtable(fullfile(matlabroot,'examples','matlab','data','BicycleCounts.csv')); tbl(1:5,:)
ans=5×5 table
Timestamp Day Total Westbound Eastbound
___________________ _____________ _____ _________ _________
2015-06-24 00:00:00 {'Wednesday'} 13 9 4
2015-06-24 01:00:00 {'Wednesday'} 3 3 0
2015-06-24 02:00:00 {'Wednesday'} 1 1 0
2015-06-24 03:00:00 {'Wednesday'} 1 1 0
2015-06-24 04:00:00 {'Wednesday'} 1 1 0
Создайте вектор x
с именем дня из каждого наблюдения и другим вектором y с наблюдаемым велосипедным движением. Затем создайте рывковый график x
и y
, и задайте маркер точки ('.')
. На графике показано распределение велосипедного движения по дням недели.
daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"]; x = categorical(tbl.Day,daynames); y = tbl.Total; swarmchart(x,y,'.');
Чтение BicycleCounts.csv
набор данных в расписание с именем tbl
. Создайте вектор x
с именем дня для каждого наблюдения, другой вектор y
при наблюдаемом движении велосипедов и третьем векторе c
с часом дня.
Затем создайте рывковый график x
и y
, и укажите размер маркера следующим 20
. Задайте цвета маркеров как векторные c
. Значения в индексе вектора в палитру рисунка. Таким образом, цвета изменяются в соответствии с часом для каждой точки данных. Используйте 'filled'
опция для заливки маркеров цветом вместо отображения их в виде полых кругов.
tbl = readtable(fullfile(matlabroot,'examples','matlab','data','BicycleCounts.csv')); daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"]; x = categorical(tbl.Day,daynames); y = tbl.Total; c = hour(tbl.Timestamp); swarmchart(x,y,20,c,'filled');
Чтение BicycleCounts.csv
набор данных в расписание с именем tbl
. Создайте вектор x
с именем дня для каждого наблюдения, другой вектор y
при наблюдаемом движении велосипедов и третьем векторе c
с часом дня. Затем создайте рывковый график x
и y
, и укажите размер маркера следующим 5
, и цвета маркеров как векторные c
. Вызовите swarmchart
функция с возвращаемым аргументом s
, так что можно изменить график после ее создания.
tbl = readtable(fullfile(matlabroot,'examples','matlab','data','BicycleCounts.csv')); daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"]; x = categorical(tbl.Day,daynames); y = tbl.Total; c = hour(tbl.Timestamp); s = swarmchart(x,y,5,c);
Изменяйте формы кластеров в каждом x
местоположение, так что точки распределены равномерно и случайным образом и интервал ограничен не более 0.5
модулей данных.
s.XJitter = 'rand';
s.XJitterWidth = 0.5;
Создайте пару x
и y
координаты. Используйте randn
функция для генерации случайных значений для y
. Затем создайте наклонный график с заполненными маркерами, которые на 50% прозрачны как на их гранях, так и на ребрах.
x1 = ones(1,500); x2 = 2 * ones(1,500); x = [x1 x2]; y1 = 2 * randn(1,500); y2 = [randn(1,250) randn(1,250) + 4]; y = [y1 y2]; swarmchart(x,y,'filled','MarkerFaceAlpha',0.5,'MarkerEdgeAlpha',0.5)
Чтение BicycleCounts.csv
набор данных в расписание с именем tbl
. Этот набор данных содержит данные о велосипедном движении в течение определенного периода времени. Отображение первых пяти строк tbl
.
tbl = readtable(fullfile(matlabroot,'examples','matlab','data','BicycleCounts.csv')); tbl(1:5,:)
ans=5×5 table
Timestamp Day Total Westbound Eastbound
___________________ _____________ _____ _________ _________
2015-06-24 00:00:00 {'Wednesday'} 13 9 4
2015-06-24 01:00:00 {'Wednesday'} 3 3 0
2015-06-24 02:00:00 {'Wednesday'} 1 1 0
2015-06-24 03:00:00 {'Wednesday'} 1 1 0
2015-06-24 04:00:00 {'Wednesday'} 1 1 0
Определите x
как категориальный массив имен дней в таблице. Определите yEast
и yWest
как векторы, содержащие количество велосипедного трафика в восточном и западном направлениях.
daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"]; x = categorical(tbl.Day,daynames); yEast = tbl.Eastbound; yWest = tbl.Westbound;
Создайте мозаику графика размещения в 'flow'
расположение плитки, так что оси заполняют доступное пространство в размещении. Вызовите nexttile
функция, чтобы создать объект осей и вернуть его как ax1
. Затем создайте рой графиков данных в восточном направлении путем прохождения ax1
на swarmchart
функция.
tiledlayout('flow') ax1 = nexttile; y = tbl.Eastbound; swarmchart(ax1,x,y,'.');
Повторите процесс, чтобы создать второй объект осей и рой график для западного трафика.
ax2 = nexttile;
y = tbl.Westbound;
s = swarmchart(ax2,x,y,'.');
x
- x -координатыx -кординаты, заданные как скаляр, вектор или матрица. Размер и форма x
зависит от формы ваших данных. В этой таблице описываются наиболее распространенные ситуации.
Тип графика | Как задать координаты |
---|---|
Одна точка | Задайте swarmchart(1,1) |
Один набор точек | Задайте x = randi(3,100,1); y = randn(1,100); swarmchart(x,y) |
Несколько наборов точек, которые являются различными цветами | Если все наборы имеют одинаковые x - или y - координаты, задайте общие координаты как вектор, а другие координаты как матрицу. Длина вектора должна совпадать с одним из размерностей матрицы. Для примера: x = randi(2,1,100); y = [randn(100,1) randn(100,1)+5]; swarmchart(x,y,100) swarmchart строит отдельный набор точек для каждого столбца в матрице.Кроме того, задайте x = randi(2,100,2); y = [randn(100,1) randn(100,1)+5]; swarmchart(x,y,100) |
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
y
- y -координатыy -кординаты, заданные как скаляр, вектор или матрица. Размер и форма y
зависит от формы ваших данных. В этой таблице описываются наиболее распространенные ситуации.
Тип графика | Как задать координаты |
---|---|
Одна точка | Задайте swarmchart(1,1) |
Один набор точек | Задайте x = randi(3,100,1); y = randn(1,100); swarmchart(x,y) |
Несколько наборов точек, которые являются различными цветами | Если все наборы имеют одинаковые x - или y - координаты, задайте общие координаты как вектор, а другие координаты как матрицу. Длина вектора должна совпадать с одним из размерностей матрицы. Для примера: x = randi(2,1,100); y = [randn(100,1) randn(100,1)+5]; swarmchart(x,y,100) swarmchart строит отдельный набор точек для каждого столбца в матрице.Кроме того, задайте x = randi(2,100,2); y = [randn(100,1) randn(100,1)+5]; swarmchart(x,y,100) |
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
sz
- Размер маркера[]
Размер маркера, заданный как числовой скаляр, вектор, матрица или пустой массив ([]
). Размер управляет площадью каждого маркера в точках в квадрате. Пустой массив задает размер по умолчанию 36 точек. Способ задания размера зависит от способа задания x
и y
и как вы хотите, чтобы график выглядел. В этой таблице описываются наиболее распространенные ситуации.
Желаемые размеры маркера | x и y
| sz | Пример |
---|---|---|---|
Одинаковый размер для всех точек | Любая допустимая комбинация векторов или матриц, описанная для | Скаляр | Задайте x = randi(2,1,100); y = randn(100,1); swarmchart(x,y,100) |
Разный размер для каждой точки | Векторы той же длины |
| Задайте x = randi(2,1,100); y = randn(100,1); sz = randi([70 2000],100,1); swarmchart(x,y,sz) Задайте x = randi(2,1,100); y = randn(100,1); sz = randi([70 2000],100,2); swarmchart(x,y,sz) |
Разный размер для каждой точки | По крайней мере, один из |
| Задайте x = randi(2,1,100); y = [randn(100,1) randn(100,1)+5]; sz = randi([70 2000],100,1); swarmchart(x,y,sz) Задайте x = randi(2,1,100); y = [randn(100,1) randn(100,1)+5]; sz = randi([70 2000],100,2); swarmchart(x,y,sz) |
c
- Цвет маркераЦвет маркера, заданный как название цвета, триплет RGB, матрица триплетов RGB или вектор индексов палитры.
Название цвета - название цвета, такое как 'red'
, или краткое имя, например 'r'
.
Триплет RGB - трехэлементный вектор-строка, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]
; для примера, [0.4 0.6 0.7]
. Триплеты RGB полезны для создания пользовательских цветов.
Матрица триплетов RGB - трехколоночная матрица, в которой каждая строка является триплетом RGB.
Вектор индексов палитры - вектор числовых значений, имеющий ту же длину, что и x
и y
векторы.
Способ задания цвета зависит от требуемой цветовой схемы и от того, строите ли вы график для одного набора координат или нескольких наборов координат. В этой таблице описываются наиболее распространенные ситуации.
Цветовая схема | Как задать цвет | Пример |
---|---|---|
Используйте один цвет для всех точек. | Укажите название цвета или краткое имя из таблицы ниже или укажите один триплет RGB. | Постройте график одного набора точек и задайте цвет следующим x = randi(2,1,100);
y = randn(100,1);
c = 'red';
swarmchart(x,y,[],c) Постройте график двух наборов точек и укажите цвет как красный с помощью триплета RGB. x = randi(2,1,100); y = randn(100,1); c = [0.6 0 0.9]; swarmchart(x,y,[],c) |
Назначьте различные цвета каждой точке с помощью палитры. | Задайте строку или вектор-столбец чисел. Индекс чисел в текущий массив палитры. Наименьшее значение преобразуется в первую строку палитры, а наибольшее значение - в последнюю строку. Промежуточные значения линейно сопоставляются с промежуточными строками. Если ваш график имеет три точки, задайте вектор-столбец, чтобы убедиться, что значения интерпретируются как индексы палитры. Использовать этот метод можно только при | Создайте вектор x = randi(2,1,100);
y = randn(100,1);
c = 1:100;
swarmchart(x,y,[],c)
colormap(gca,'winter') |
Создайте пользовательский цвет для каждой точки. | Задайте матрицу m на 3 триплетов RGB, где m - число точек на графике. Использовать этот метод можно только при | Создайте матрицу x = randi(2,1,100); y = randn(100,1); c = rand(100,3); swarmchart(x,y,[],c) |
Создайте другой цвет для каждого набора данных. | Задайте матрицу n на 3 триплетов RGB, где n - количество наборов данных. Использовать этот метод можно только тогда, когда хотя бы один из | Создайте матрицу x = randi(2,100,2); y = [randn(100,1) randn(100,1)+5]; c = [1 0 0; 0 0 1]; swarmchart(x,y,[],c) |
Название цвета | Краткое имя | Триплет 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' |
mkr
- Тип маркера'o'
(по умолчанию) | '+'
| '*'
| '.'
| 'x'
| ...Тип маркера, заданный как одно из значений, перечисленных в этой таблице.
Маркер | Описание |
---|---|
'o' | Круг |
'+' | Плюс знак |
'*' | Звездочка |
'.' | Точка |
'x' | Крест |
'_' | Горизонтальная линия |
'|' | Вертикальная линия |
's' | Квадрат |
'd' | Алмаз |
'^' | Направленный вверх треугольник |
'v' | Нисходящий треугольник |
'>' | Треугольник , указывающий вправо |
'<' | Треугольник , указывающий влево |
'p' | Пентаграмма |
'h' | Hexagram |
'filled'
- Опция заполнения внутренних маркеров'filled'
Опция заполнения интерьера маркеров, заданная как 'filled'
. Используйте эту опцию с маркерами, которые имеют лицо, например 'o'
или 'square'
. Маркеры, которые не имеют грани и содержат только ребра, не визуализируются вообще ('+'
, '*'
, '.'
, и 'x'
).
The 'filled'
опция устанавливает MarkerFaceColor
свойство Scatter
объект к 'flat'
и MarkerEdgeColor
свойство к 'none'
. В этом случае MATLAB рисует грани маркера, но не ребра.
ax
- Целевые осиAxes
| объекта PolarAxes
| объекта GeographicAxes
объектЦелевые оси, заданные как Axes
объект, a PolarAxes
объект, или GeographicAxes
объект. Если вы не задаете оси, графики MATLAB в текущие системы координат создает Axes
объект, если он не существует.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
swarmchart(randi(4,500,1),randn(500,1),'MarkerFaceColor','red')
задает красные заполненные маркеры.
Примечание
Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойств объекта Scatter.
'XJitter'
- Тип дрожания для x -размерность'none'
| 'density'
| 'rand'
| 'randn'
Тип дрожания (интервал между точками) вдоль x -размерность, заданный как одно из следующих значений:
'none'
- Не дрожать точки.
'density'
- Дрожание точек с помощью оценки плотности ядра y для 2-D графиков. Если вы задаете эту опцию в две размерностей для 3-D графиков, точки джиттерируются на основе оценки плотности ядра в третьей размерности. Для примера установка XJitter
и YJitter
на 'density'
использует оценку плотности ядра z.
'rand'
- Дрожание точек случайным образом с равномерным распределением.
'randn'
- Дрожание указывает случайным образом с нормальным распределением.
'XJitterWidth'
- Максимальное дрожание вдоль x -размерностьМаксимальное количество дрожания (смещение между точками) вдоль x -размерность, заданное как неотрицательное скалярное значение в единицах данных.
Например, чтобы задать ширину дрожания 90% от кратчайшего расстояния между смежными точками, берите минимальное расстояние между уникальными значениями x
и шкала по 0.9
.
XJitterWidth = 0.9 * min(diff(unique(x)));
Точки на роевом графике джиттерируются с помощью равномерных случайных значений, которые взвешиваются оценкой плотности ядра Гауссова y
и относительные числа точек на каждом x
расположение. Это поведение соответствует значению по умолчанию 'density'
установка XJitter
свойство на Scatter
объект, когда вы вызываете swarmchart
функция.
Максимальное распределение точек в каждом x
местоположение составляет 90% наименьшего расстояния между смежными x
значения по умолчанию:
spread = 0.9 * min(diff(unique(x)));
Вы можете управлять спредом, установив XJitterWidth
свойство на Scatter
объект.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.