Boxeslot Beeswarm (диаграмма рассеяния для категориальных данных) в MATLAB

Я ищу функцию для создания так называемого коробочного графика Beeswarm. Это очень популярные сюжеты, используемые в медицине и биологии, и я был удивлен, что не нашел их для MATLAB.

В основном, числовые данные для каждой группы разбиваются на группы, и дрожание точек зависит от количества точек в конкретной группе.

Вот пример, сделанный с R с использованием функции BEESWARM:

пример пчелиного тепла

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

1 ответ

Решение

На обмене файлами есть функция plotSpread, которая может выполнять следующие графики:

plotSpread({rand(100,1),randn(100,1)})

       data = [randn(50,1);randn(50,1)+3.5]*[1 1];
       catIdx = [ones(50,1);zeros(50,1);randi([0,1],[100,1])];
       plotSpread(data,'categoryIdx',catIdx,...
            'categoryMarkers',{'o','+'},'categoryColors',{'r','b'})

Другие вопросы по тегам