swarmchart

Диаграмма поля точек роя

    Описание

    пример

    swarmchart(x,y) отображает график роя, который является графиком рассеивания со смещением точек (дрожавшим) в x- размерность. Точки формируют отличные формы, и схема каждой формы похожа на график скрипки. Графики роя помогают вам визуализировать дискретный x данные с распределением y данные. В каждом местоположении в x, точки дрожатся на основе оценки плотности ядра y.

    пример

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

    пример

    swarmchart(x,y,sz,c) задает цвета маркера. Чтобы построить все маркеры с тем же цветом, задайте c как название цвета или триплет RGB. Чтобы присвоить различный цвет каждому маркеру, задайте вектор тот же размер как X и Y. В качестве альтернативы можно задать матрицу с тремя столбцами триплетов RGB. Количество строк в матрице должно совпадать с длиной x и y.

    пример

    swarmchart(___,mkr) задает различный маркер, чем маркер по умолчанию, который является кругом. Задайте mkr после всех аргументов в любом из предыдущих синтаксисов.

    пример

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

    пример

    swarmchart(___,Name,Value) задает дополнительные свойства для графика роя с помощью одного или нескольких Name,Value парные аргументы. Задайте свойства после всех других входных параметров. Для списка свойств см. свойства объекта Scatter.

    пример

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

    пример

    s = swarmchart(___) возвращает 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;

    Создайте график роя набора First Data и задайте универсальный размер маркера 5. Затем вызовите hold on построить вторые и третьи наборы данных вместе с набором First Data. Вызовите 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- в виде числового скаляра или вектора тот же размер как y.

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

    y- в виде числового скаляра или вектора тот же размер как x.

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

    Размер маркера в точках, заданных в одной из следующих форм:

    • Числовой скаляр — График все маркеры с равным размером.

    • Строка или вектор-столбец — Использование различные размеры для каждого маркера. Длина sz должен равняться длине x и y.

    • [] — Используйте размер по умолчанию 36 точек.

    Цвет маркера, заданный в одной из следующих форм:

    • Триплет RGB или название цвета — График все маркеры с тем же цветом. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]. В качестве альтернативы можно задать название цвета из приведенной ниже таблицы.

    • Три матрицы столбца триплетов RGB — Использование различные цвета для каждого маркера. Каждая строка матрицы задает цвет триплета RGB для соответствующего маркера. Количество строк должно равняться длине x и y.

    • Вектор — Использование различные цвета для каждого маркера. Значения в c индексируйте в текущую палитру, и они покрывают полный спектр палитры. Длина c должен равняться длине x и y. Чтобы изменить палитру, используйте colormap функция.

    Название цветаОписаниеЭквивалентный триплет RGB
    'red' или 'r'Красный[1 0 0]
    'green' или 'g'Зеленый[0 1 0]
    'blue' или 'b'Синий[0 0 1]
    'yellow' или 'y'Желтый[1 1 0]
    'magenta' или 'm'Пурпурный[1 0 1]
    'cyan' или 'c'Голубой[0 1 1]
    'white' или 'w'Белый[1 1 1]
    'black' или 'k'Черный[0 0 0]

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

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

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

    'filled' опция устанавливает MarkerFaceColor свойство Scatter возразите против 'flat' и MarkerEdgeColor свойство к 'none'. В этом случае MATLAB® чертит поверхности маркера, но не ребра.

    Целевые оси в виде Axes объект, PolarAxes объект или GeographicAxes объект. Если вы не задаете оси, графики MATLAB в текущую систему координат, или это создает Axes возразите, не существуете ли вы.

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

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

    Пример: swarmchart(randi(4,500,1),randn(500,1),'MarkerFaceColor','red') задает красные заполненные маркеры.

    Примечание

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

    Тип дрожания (интервал точек) вдоль x - размерность в виде одного из следующих значений:

    • 'none' — Не дрожите точки.

    • 'density' — Дрожание точки с помощью оценки плотности ядра y для 2D графиков. Если вы задаете эту опцию в двух измерениях для 3-D графика, точки дрожатся на основе оценки плотности ядра в третьей размерности. Например, установка XJitter и YJitter к 'density' использует оценку плотности ядра z.

    • 'rand' — Дрожание точки случайным образом с равномерным распределением.

    • 'randn' — Дрожание указывает случайным образом с нормальным распределением.

    Максимальная сумма дрожания (перемещение между точками) вдоль 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 объект.

    Смотрите также

    Функции

    Свойства

    Введенный в R2020b