2013-10-10 8 views
0

В обзоре я задал два вопроса:Alluvial диаграмма с R (или связанной)

  1. Ваш главный транспорт (только один возможный ответ и обязательный ответ)
  2. Что ваш вторичный транспорт? (0 или много ответа, каждый вторичный транспорт содержит 0 для да и 1 для нет)

Вот некоторые поддельные данные: http://pastebin.com/raw.php?i=pp1EHP7r

PersonNumber,Main Transport,Bus(secondary transport),Metro(secondary transport),Tram (secondary transport) 
1,Bus,1,0,1 
2,Bus,1,0,1 
3,Bus,1,1,1 
4,Train,1,0,0 
5,Train,0,1,0 
6,Train,0,1,0 
7,Bus,0,0,0 
8,Bus,0,1,0 
9,Metro,0,1,0 

Моя цель состоит в том, чтобы создать две части Левая часть с основные перевозки. Правая часть со вторичным транспортом. Затем левый tranport ссылается на правый, если есть значение, указанное в правом столбце. Например, для первого наблюдения: автобус будет связан с автобусом (вторичный транспорт) и с трамваем (вторичный транспорт), но не с метро (вторичный транспорт)

Я действительно не знаю, как это сделать, потому что один основной транспорт должен быть подключен ко многим другим столбцам только тогда, когда значение содержит 1 ...

Я ищу такого рода граф потока http://app.raw.densitydesign.org/#/

+1

Что-то вроде этого? http://gforge.se/2013/06/visualizing-transitions-with-the-transitionplot-function/ – Henrik

+1

Другой связанный с этим вопрос: http://stats.stackexchange.com/questions/12029/is-it-possible-to -create-parallel-sets-plot-using-r –

+0

@Henrik спасибо, что я ищу, я посмотрю. – S12000

ответ

2

Если вы хотите визуализировать его с помощью Raw (http://app.raw.densitydesign.org/#/) вы должны создайте такой набор данных (созданный исходя из ваших данных):

PersonNumber MainTransport SecondaryTransport 
1 Bus Bus 
1 Bus Tram 
2 Bus Bus 
2 Bus Tram 
3 Bus Bus 
3 Bus Tram 
3 Bus Metro 
4 Train Bus 
5 Train Metro 
6 Train Metro 
8 Bus Metro 
9 Metro Metro 

Каждая строка представляет собой связь между основным транспортом и вторичным транспортом. Если человек использует более одного вторичного транспорта, вы должны создать линию для каждой пары первичного/вторичного транспорта (см. Лицо № 3). Имейте в виду, что, поскольку каждая строка имеет один и тот же визуальный вес, общая высота потоков представляет собой количество входов каждой переменной.

В Raw drag «MainTransport» и «SecondaryTransport» в качестве «Dimensions».

+0

Я думал об этом, но я не понимаю, когда вы говорите: «Имейте в виду, что, поскольку каждая строка имеет один и тот же визуальный вес, общая высота потоков не представляет собой число вхождений каждой переменной». Означает ли это, что у меня будет правильная пропорция для всех вторичных перевозок, но неправильная пропорция для основного транспорта? Действительно, в вашем примере, как если бы человек № 3 использовал в 2 раза шину в качестве основного транспорта. Как этого избежать? – S12000

+0

Извините, было слово с ошибкой, но вы понимаете, что я имел в виду. Каждая строка считается «1», если человек использует три разных вторичных транспорта, с левой стороны - три. Raw позволяет добавить значение ссылки, поэтому вы можете установить индекс, чтобы избежать этой проблемы.Примером может быть разделение значения ссылки на количество вторичных перевозок. Также это решение имеет недостатки, на самом деле трудно найти удовлетворительное визуальное решение этой проблемы. – Michele

+0

Я преуспел, но у меня есть вопрос: можно ли добавить цвет на аллювиальный граф? – S12000

0

Если вы хотите добавить цвета к графе вам нужно изменить alluvial.js путем замены переменной цвет:

цвета = d3.scale.category20();

Тогда это работает как шарм!

Rob

+0

большое спасибо – S12000