Подтвердить что ты не робот

Реализация параллельных координат?

Я хочу реализовать параллельные координаты для моего многомерного результата. Кто-нибудь имеет хорошую ссылку на его реализацию в Matlab или R? Кроме того, есть ли предложения относительно лучшего инструмента для создания параллельных координат?

4b9b3361

Ответ 1

R-решение

пакет решетки поставляется с R и включает в себя функцию parallel:

 parallel(~iris[1:4] | Species, iris) 

alt text

ggplot2 также ваш друг здесь:

D <- data.frame(Gain = rnorm(20),  
                Trader = factor(LETTERS[1:4]), 
                Day = factor(rep(1:5, each = 4)))
ggplot(D) + 
  geom_line(aes(x = Trader, y = Gain, group = Day, color = Day))

alt text

решетка и ggplot требуют ввода данных в разных "формах". Для решетки это матричная форма, каждый столбец представляет собой переменную, представленную на одной параллельной координате. Для ggplot это один столбец (Gains) и отдельный индикатор для переменной (трейдер выше)./по этой причине я использовал два разных примера, чтобы не перепутаться с изменением данных здесь /.

Если вам нужно что-то быстро, то решетка, вероятно, для вас. Для Ggplot требуется некоторое время.

Ответ 2

Если вы хотите использовать параллельные координаты, MATLAB имеет реализацию в панели инструментов статистики: PARALLELCOORDS.

В противном случае, если вы хотите реализовать его самостоятельно, базовая версия (без всех колоколов и свистов) должна быть легкой:

load fisheriris            %# load some data
%#meas = zscore(meas);     %# to normalize the attributes
h = plot(meas');            %'# plot
set(gca, 'XTick',1:4, 'XTickLabel',{'SL' 'SW' 'PL' 'PW'}, 'XGrid','on')
ylabel('feature value'), title('Parallel Coordinates')

%# color according to class label
c = grp2idx(species);
clr = lines( numel(c) );
arrayfun(@(k) set(h(c==k),'Color',clr(k,:)), unique(c))

alt text

Ответ 3

GGobi имел для эонов (как его предшественник XGobi уже имел).

Вы можете получить доступ к этому через rggobi пакет R. И, будучи открытым исходным кодом, вы также можете смотреть под капотом.

Ответ 4

Пакет MASS (доступный большинству установок R) включает реализацию для параллельных координат. Функция parcoord.

Из примеров "паркодера" - бит исправлен - для набора данных Iris:

ir <- rbind(iris3[,,1], iris3[,,2], iris3[,,3])
parcoord(log(ir)[, c(1, 2, 3, 4)], col = 1 + (0:149)%/%50)