swarmchart3

3-D роя диаграммы поля точек

    Описание

    пример

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

    пример

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

    пример

    swarmchart3(x,y,z,sz,c) определяет цвета маркера. Чтобы построить график всех маркеров с одним и тем же цветом, задайте c как название цвета или триплет RGB. Чтобы назначить отдельный цвет каждому маркеру, задайте вектор того же размера, что и x, y, и z. Кроме того, можно задать трехколоночную матрицу триплетов RGB. Количество строк в матрице должно совпадать с длиной x, y, и z.

    пример

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

    пример

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

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

    пример

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

    пример

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

    Примеры

    свернуть все

    Чтение 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 с именем дня из каждого наблюдения.

    daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"];
    x = categorical(tbl.Day,daynames);

    Создайте категориальный вектор y содержащие значения "pm" или "am" по времени для каждого наблюдения в таблице. Создайте векторные z данных трафика в восточном направлении. Затем создайте рывковый график x, y, и z. На графике показаны распределения данных для каждого утра и вечера недели.

    ispm = tbl.Timestamp.Hour < 12;
    y = categorical;
    y(ispm) = "pm";
    y(~ispm) = "am";
    z= tbl.Eastbound;
    swarmchart3(x,y,z);

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

    Создайте векторные x как комбинация нулей и таковых и создание y как вектор, содержащий все таковые. Создание z как вектор квадратов случайных чисел. Затем создайте рывковый график x, y, и z, и укажите размер маркера размера следующим 5.

    x = [zeros(1,500) ones(1,500)];
    y = ones(1,1000);
    z = randn(1,1000).^2;
    swarmchart3(x,y,z,5);

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

    Создайте векторные x как комбинация нулей и таковых и создание y как вектор, содержащий все таковые. Создание z как вектор квадратов случайных чисел. Затем создайте рывковый график x, y, и z, и задайте точку ('.') символ маркера.

    x = [zeros(1,500) ones(1,500)];
    y = ones(1,1000);
    z = randn(1,1000).^2;
    swarmchart3(x,y,z,'.');

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

    Создайте векторные x содержащий комбинацию нулей и таковых и создающий y содержащий случайную комбинацию таковых и двоек. Создание z как вектор квадратов случайных чисел. Задайте цвета для маркеров путем создания векторных c как квадратный корень z. Затем создайте рывковый график x, y, и z. Установите размер маркера равным 50 и задайте цвета следующим c. Значения в c индекс в палитру рисунка. Используйте 'filled' опция для заливки маркеров цветом вместо отображения их в виде полых кругов.

    x = [zeros(1,500) ones(1,500)];
    y = randi(2,1,1000);
    z = randn(1,1000).^2;
    c = sqrt(z);
    swarmchart3(x,y,z,50,c,'filled');

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

    Создайте векторные x содержащий комбинацию нулей и таковых и создающий y содержащая случайную комбинацию чисел с одного по четыре. Создание z как вектор квадратов случайных чисел. Затем создайте рывковый график x, y, и z вызовом swarmchart функция с возвращаемым аргументом, который хранит Scatter объект. Добавьте метки осей X и Y, чтобы увидеть эффект изменения свойств дрожания в каждой размерности.

    x = [zeros(1,500) ones(1,500)];
    y = randi(4,1,1000);
    z = randn(1,1000).^2;
    s = swarmchart3(x,y,z);
    xlabel('X')
    ylabel('Y')

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

    Измените формы кластеров точек, задав свойства дрожания на Scatter объект. В x размерность, задайте равномерный случайный джиттер и измените ширину джиттера на 0.5 модулей данных. В y размерность, задайте нормальный случайный джиттер и измените ширину джиттера на 0.1 модулей данных. Интервал между точками не превышает заданную ширину дрожания.

    s.XJitter = 'rand';
    s.XJitterWidth = 0.5;
    s.YJitter = 'randn';
    s.YJitterWidth = 0.1;

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

    Чтение 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 содержащие значения "pm" или "am" по времени для каждого наблюдения в таблице. Определите ze как вектор данных трафика в восточном направлении и задайте zw как вектор данных трафика в западном направлении.

    daynames = ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"];
    x = categorical(tbl.Day,daynames);
    ispm = tbl.Timestamp.Hour<12;
    y = categorical;
    y(ispm) = 'pm';
    y(~ispm) = 'am';
    ze = tbl.Eastbound;
    zw = tbl.Westbound;

    Создайте мозаику графика размещения в 'flow' расположение плитки, так что оси заполняют доступное пространство в размещении. Вызовите nexttile функция, чтобы создать объект осей и вернуть его как ax1. Затем создайте рой графиков данных в восточном направлении путем прохождения ax1 на swarmchart функция.

    tiledlayout('flow')
    ax1=nexttile;
    swarmchart3(ax1,x,y,ze,'.');

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

    Повторите процесс, чтобы создать второй объект осей и рой график для западного трафика.

    ax2 = nexttile;
    z = tbl.Westbound;
    swarmchart3(ax2,x,y,zw,'.');

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

    Входные параметры

    свернуть все

    x -cordinates, заданный как числовой скаляр или вектор того же размера, что и y и z.

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

    y -cordinates, заданный как числовой скаляр или вектор того же размера, что и x и z.

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

    z -cordinates, заданный как числовой скаляр или вектор того же размера, что и x и y.

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

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

    • Числовой скаляр - постройте график всех маркеров с равным размером.

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

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

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

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

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

    • Вектор - Используйте различные цвета для каждого маркера. Значения в c индекс в текущую палитру, и они охватывают всюсь область значений палитры. Длина c должен равняться длине x, y, и z. Чтобы изменить палитру, используйте 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'Hexagram

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

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

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

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

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

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

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

    • 'none' - Не дрожать точки.

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

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

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

    Максимальное количество дрожания (смещение между точками) вдоль x -размерность, заданное как неотрицательное скалярное значение в единицах данных.

    Например, чтобы задать ширину дрожания 90% от кратчайшего расстояния между смежными точками, берите минимальное расстояние между уникальными значениями x и шкала по 0.9.

    XJitterWidth = 0.9 * min(diff(unique(x)));

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

    • 'none' - Не дрожать точки.

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

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

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

    Максимальное количество дрожания (смещение между точками) вдоль y -размерность, заданное как неотрицательное скалярное значение в единицах данных.

    Например, чтобы задать ширину дрожания 90% от кратчайшего расстояния между смежными точками, берите минимальное расстояние между уникальными значениями y и шкала по 0.9.

    YJitterWidth = 0.9 * min(diff(unique(y)));

    Алгоритмы

    Точки на роевом графике джиттерируются с помощью равномерных случайных значений, которые взвешиваются оценкой плотности ядра Гауссова z и относительные числа точек на каждом (x, y) расположение. Это поведение соответствует значению по умолчанию 'density' установка XJitter и YJitter свойства на Scatter объект, когда вы вызываете swarmchart3 функция.

    Максимальное распределение точек в каждом x местоположение по умолчанию составляет 90% наименьшего расстояния между смежными точками. Для примера, в x размерность, спред вычисляется как:

    spread = 0.9 * min(diff(unique(x)));

    Можно управлять смещением путем установки XJitterWidth и YJitterWidth свойства на Scatter объект.

    См. также

    Функции

    Свойства

    Введенный в R2020b