swarmchart3

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

    Описание

    пример

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

    пример

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

    пример

    swarmchart3(x,y,z,sz,c) задает цвета маркера. Чтобы построить все маркеры с тем же цветом, задайте c как название цвета или триплет RGB. Чтобы присвоить различный цвет каждому маркеру, задайте вектор тот же размер как xY, и z. В качестве альтернативы можно задать матрицу с тремя столбцами триплетов RGB. Количество строк в матрице должно совпадать с длиной xY, и 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 из идущих на восток данных о трафике. Затем создайте график роя xY, и z. График показывает распределения данных в течение каждого дня и вечера недели.

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

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

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

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

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

    Создайте векторный x содержание комбинации нулей и единиц, и создает y содержа случайную комбинацию из единиц и пар. Создайте z как вектор из случайных чисел в квадрате. Задайте цвета для маркеров путем создания векторного c как квадратный корень из z. Затем создайте график роя xY, и 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');

    Создайте векторный x содержание комбинации нулей и единиц, и создает y содержа случайную комбинацию чисел один - четыре. Создайте z как вектор из случайных чисел в квадрате. Затем создайте график роя xY, и 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')

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

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

    Считайте 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,'.');

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

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

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

    свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    '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 для 2D графиков. Если вы задаете эту опцию в двух измерениях для 3-D графика, точки дрожатся на основе оценки плотности ядра в третьей размерности. Например, установка XJitter и YJitter к 'density' использует оценку плотности ядра z.

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

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

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

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

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

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

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

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

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

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

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

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

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

    Алгоритмы

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

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

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

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

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

    Функции

    Свойства

    Введенный в R2020b