2010-10-15 35 views
14

Boyutsal sonucum için paralel koordinatlar uygulamak istiyorum. Matlab veya R uygulamasında uygulamasının iyi bir bağlantısı var mı? Ayrıca, paralel koordinatların üretilmesinde kullanılacak en iyi araçla ilgili herhangi bir öneri var mı?Paralel koordinatların uygulanması?

+5

bu neden kapatıldığı Hiçbir fikrim, bana makul görünüyor. ggplot2, bir paralel koordinat çizimi oluşturmak için herhangi bir veri çerçevesini standart geoms ile kullanmanıza izin veren ['ggpcp()'] (http://docs.ggplot2.org/0.9.3/ggpcp.html) yardımcı işlevine sahiptir. . – naught101

+0

Artık Plotly ile etkileşimli paralel koordinatlar oluşturabilirsiniz. Şuna bir göz atın: https://plot.ly/r/parallel-coordinates-plot/ – bcd

cevap

20

R çözümü

kafes paket R ile gelir ve parallel fonksiyon içerir:

:

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

alt text

ggplot2 de burada senin arkadaşın

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

örgü ve ggplot farklı "şekillerde", girdi verilerini, ihtiyaç. Kafes için bir matris formudur, her sütun bir paralel koordinat üzerinde temsil edilen bir değişkendir. Ggplot için bir sütun (Kazançlar) ve değişken için ayrı bir gösterge (yukarıdaki Trader)./bu, iki farklı örnek kullanmamın sebebi, burada yeniden şekillenen veriyle karıştırmamak.

Hızlı bir şeye ihtiyacınız varsa, kafes muhtemelen sizin için. Ggplot biraz zaman yatırımı gerektirir.

+1

ggplot2 çözümü için - var ayrıca [ggparcoord] (http://www.inside-r.[GGally] (http://cran.r-project.org/web/packages/GGally/) paketindeki org/packages/cran/GGally/docs/ggparcoord) işlevi. – radek

+0

Ggplot kullanarak çalışıyordum, 20 ürün için iyi çalışıyor. Ama eğer 40 madde üretirsem, her gün 8 puan alır (örneğin, 2'de olduğu gibi 1. günde A'da dikey bir çizgi vardır). Lütfen her dört nokta için çizgiyi ayırmanın bir yolunu söyler misiniz? –

6

Paralel koordinat kullanmak istiyorsanız, MATLAB'ın İstatistik Araç Kutusunda bir uygulaması vardır: PARALLELCOORDS. (Aynı

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

+0

@downvoter: Aşağı oylarınızı açıklamak ister misiniz? OP ya R ya da MATLAB kodunu istedi; Yukarıdaki kod sadece iyi çalışıyor .. – Amro

+0

Üzgünüz, ben de sordum MATLAB için sordu fark etmedim çünkü ... Kötü hissediyorum ve benim downvote kaldırmak için çalıştı ama kilitli. – cmiller8

6

GGobi eonlar için olmuştur: Yapmanız kolay olmalıdır kendinizi, (çan ve ıslık her olmadan) temel versiyon birini uygulamak istiyorsanız Aksi takdirde

selefi XGobi zaten vardı).

R'dan rggobi paketi aracılığıyla bu bilgilere erişebilirsiniz. Ve açık kaynak olarak, kaputun altına da bakarsın.

4

MASS paketi (R kurulumlarının çoğunda mevcuttur) paralel koordinatlar için bir uygulama içerir. parcoord işlevi. örnekleri itibaren

İris veri seti için DÜZELTİLECEĞİNİ- -a biraz parcoord:?

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