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'})