R kullanarak yıpranmayı görselleştirmenin en iyi yolu?


15

Thru bu sitede Geçenlerde Sankey Diyagramları, bir neler olduğunu görselleştirmek için harika bir yol keşfettim geleneksel akış şeması.

İşte George M. Whitesides ve George W. Crabtree , Source'dan bir Sankey Diyagramı örneği Enerjide Uzun Dönemli Temel Araştırmaları Unutmayın ; Enerji , Bilimde Uzun Vadeli Temel Araştırmaları Unutmayın 9 Şubat 2007: Vol. 315. hayır. 5813, sayfa 796-798.

Sankey R-paketi olmadığını fark ettikten sonra çevrimiçi bir R betiği buldum , maalesef bu betiği oldukça ham ve biraz sınırlı. Büyük umutlarla Sankey R paketi veya stackoverflow'da daha olgun bir işlev istedim , sanki istedim, ancak sürpriz olarak R'de Sankey Diyagramları oluşturmak için olgun bir fonksiyonumuz olmadığı için görünüyor.

Bir ödül yayınladıktan sonra Geek On Acid , mevcut senaryoda küçük bir kesmek önerecek kadar nazikti , bu da benim özel amacım için az ya da çok çalışmasını sağladı.

Geliştirilmiş R-script bu diyagramı oluşturdu, Asidin R-Sankey Diyagramında Geek Kaynak; stackoverflow.com .

Ancak, bir R paketinin olmaması, Sankey Diyagramlarının yukarıdaki diyagramda sunulan veri akışında R kullanarak yıpranmayı görselleştirmek için inanılmaz bir yol olmadığını gösteriyor mu ( veriler ve R kodu için ilk yığın akışı sorusuna bakın) . yıpranmayı görselleştirmenin daha iyi bir yolu var.

R kullanarak bir veri akışındaki yıpranmayı görselleştirmenin en iyi yolu nedir?


7
Öyle çok zor (ilk örnek olasılıkla sanatçı elle düğümleri yerleştirilerek yapıldı) herhangi bir otomatik bir şekilde bakmak Nice diyagramı alır. Programlamak zor bir grafik aracı olarak yarar ile hiçbir ilgisi yoktur. Daha motivasyon bulabilirsiniz benim bu yazıdaki akışlarını görselleştirme konusunda CBS sitesinde. Ayrıca bu sitenin cevabında bazı parsets ve nokta grafikleri örnekleri verdim .
Andy W

@AndyW, çok faydalı bir yorum için teşekkür ederim. Farklı yöntemleri araştıracağım ve verilerimle deneyeceğim. Teşekkürler.
Eric Fail

Bu üst diyagram harika bir fikir, ama bana göre kaynakların toplamı lavaboların toplamına eşit değil (yüksekliğin büyüklüğü açıkladığı varsayılarak)
naught101

Ah .. boş ver, yanlış okudum ... kaynaklardaki hafif bitler sadece etiketler, verinin bir parçası değil. Biraz kafa karıştırıcı ..
naught101

Yanıtlar:


4

@Gung ile hemfikirim. Gönderdiğiniz Sankey diyagramı, sanırım, tekniğin nerede yardımcı olabileceğine dair oldukça iyi bir örnek. Karmaşık olsa da, bağlam (enerji girişi ve çıktısı) da karmaşıktır ve birden çok kullanım kategorisinde girdilerin çıktılara göre yeni girdi olarak hareket yollarını görselleştirmenin daha güzel bir yolunu düşünmek zordur.

Şimdi, diğerlerinin belirttiği gibi, gönderdiğiniz yıpratma örneği için bir Sankey diyagramı kullanmak yararlı değildir. Alternatif görselleştirmeler için iyi bir öneri istiyorsanız, değişkenlerinizin tamamını göndermeniz gerektiğini düşünüyorum. Siteler ve klinisyenler arasındaki yıpratma kaynaklarında farklılıklar göstermek istiyorsanız, kitleniz için anlamanız ve uygulamanız için en kolay küçük noktalı bir dizi nokta olabilir ( bu örneğe bakın , durumunuzda gruplar nerede olabilir) alanlar, gruplar içindeki elemanlar yıpranmanın nedenleri ve yatay eksen% 0-100 olacaktır).

Sankey diyagramı kullanmak istediğiniz bir şeyse ve başka bir üst düzey dilde uğraşmak istiyorsanız , galeride Python çizim paketi matplotlib için güzel bir örnek (kodlu) var.


3

Bir yöntemin eksikliğinin, yöntemin önemsiz veya faydalı olmadığını ima ettiğini varsaymam. Sonuçta, şu anda R'de mevcut olan tüm yöntemler için, bunun için bir paket olmadığı bir zaman vardı (oldukça yakın zamanda - R sadece ~ 10 yaşındadır).

Ancak, yıpratma gibi verileri görselleştirmenin birçok yolu olduğunu düşünmeliyim. Grafiğinize baktığımda ilk düşüncem, bir nokta grafiğiyle temsil edilebileceğidir . Başka olasılıklar da var. Sankey diagramının ekstra işlevselliği varken devreye girer gidiyor bazı dolayı aynı nedene daha sonra bir noktada nedeniyle belirli bir nedene yıpratma ve daha sonra aradaki diğer giriş ve çıkışlar ile. Bu, standart parsellerle temsil edilmesi daha karmaşık olurdu (örneğin, bir Sankey diyagramıyla bile takip etmek daha zordur - örneğin, sayfanın üst kısmındaki okumak okumak için biraz çalışma gerektirir). Buna sahip olmadığınız için Sankey diyagramı hoş görünüyor, ancak aşırıya kaçıyor.


1
Verilen ilk grafik harika IMO. Bir dizi nokta grafiğinde bu kadar sezgisel olarak yakalanması zor olacak çok ayrıntıya sahiptir. Ayrıca Sankey Diyagramı, farklı düğümlerden gelen ve gelen düğümleri (kullanılmış enerjiye ve kaybedilen enerjiye yeniden birleştirmek) akışları görselleştirmek için iyidir .
Andy W

@AndyW, bu rakamı vurmak istemiyorum. B / c okumak çok fazla bilgi içerir. Sizi içine çeker ve bir süre orada tutarsa, gerçek bir artı olabilir - Açıklamamın negatif olarak çıkması anlamına gelmiyordu. OTOH, OP'nin verileri daha basit grafiklerin bunları taşıyabileceği kadar açıktır.
gung - Monica'yı eski durumuna getirin

İyi bir nokta, eğer OP'nin verileri verilenden daha karmaşık değilse, muhtemelen değerinden daha fazla sorun olur! Orijinal enerji diyagramını bir dizi nokta grafiğe dönüştürmeyi düşünmek bile istemezdim.
Andy W

@gung, Yazıma cevap verdiğiniz için teşekkür ederim. Katılıyorum, yöntemin eksikliği, yöntemin iyi veya kullanışlı olmadığının kesin bir işareti olarak alınmamalıdır ve Sankey diyagramlarını (SD) kesinlikle vermedim. Verilerimle ilgili olarak, şemada gördüğüm verilerimin yalnızca en üst boyutu, 4 farklı sitede ve 7 farklı klinisyen tarafından toplanan verilerim var ve bu bilgileri bir tür gibi grafiğe dahil etmek istiyorum toplam akış içinde altbölüm. Mevcut verilerle aşırı doldurma gibi görünebilir, ancak tüm değişkenlerimi dahil edersem SD'nin yararlı olacağını düşünüyorum.
Eric Fail

Daha büyük karmaşıklık, Sankey diyagramı muhtemelen en iyi bahistir. Yukarıda bağlantılı olanlar gibi @ AndyW'nin gönderilerinden bazılarına bakmak için de zaman ayırmaya değer. Alakalı olabilecek birçok iyi cevap verildi. Örneğin, sayfasına gitmek için adını tıklarsanız, oradaki veri görselleştirme etiketini tıklarsanız yayınlarına bakabilirsiniz.
gung - Monica'yı eski durumuna getirin

1

Verilerinize göre ayarlanmış ok genişliklerine ve basit bir düzene sahip bir SVG dosyası yazmak için R kodunu kullanmaya ne dersiniz? Ardından Inkscape'e yükleyin ve etrafındaki okları bükün, güzel bir şey yapmak için kalbinizin içeriğine etiketler vb. Ekleyin.

Açık sorun: Verileriniz değişirse Inkscape'teki tüm özelliklerinizi yeniden yapmanız gerekir (ancak Inkscape'ten güzel SVG'nizi bir şablon olarak kullanabilirsiniz ve sadece yeni ok genişliklerini kullanabilirsiniz).

Ama dürüst olmak gerekirse, tepedeki çok renkli dalgalı dalgalı bir karmaşa iyi bir Sankey diyagramıysa, dolgun bir karnında kötü bir tane görmek istemem [birkaç dakika daha bakmam bana bir ipucu verdi. bununla ilgili, iyi bir grafik buna ihtiyaç duymamalıdır].


2
Bu verileri görselleştirmenin daha iyi bir yolunu görmek isterim. Bu arsada çok fazla bilgi var (ve çok sayıda farklı değişken), bu yüzden elbette karmaşık olacak ...
naught101

2
Dan Carr'ın mikro haritaları tam grafiği sindirmek için zaman alır, ayrıca ayrıntılı yol haritası da. İkisi de mutlaka kötü bir şey değildir. James Chesire'ın Hızlı Düşünme ve Yavaş Düşünme Görselleştirme adlı blog gönderisine bakın .
Andy W
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.