Birden çok “histogramı” görselleştirme (çubuk grafikler)


9

Verileri görselleştirmek için doğru yolu seçmekte zorlanıyorum. Let elimizdeki demek kitabevi satan kitaplar ve her kitap en az birine sahiptir kategori .

Bir kitapçı için, tüm kitap kategorilerini sayarsak, o kitapçı için belirli bir kategoriye giren kitap sayısını gösteren bir histogram elde ederiz.

Kitapçı davranışını görselleştirmek istiyorum, bir kategoriyi diğer kategorilere tercih edip etmediklerini görmek istiyorum. Bilim kurgularını hep birlikte tercih edip etmediklerini görmek istemiyorum, ancak her kategoriye eşit davranıp davranmadıklarını görmek istiyorum.

~ 1 milyon kitabım var.

4 yöntem düşündüm:

  1. Verileri örnekleyin, sadece 500 kitabevinin histogramlarını gösterin. Onları 10x10 ızgara kullanarak 5 ayrı sayfada gösterin. 4x4 ızgara örneği:

    çoklu histogram 1

  2. # 1 ile aynı. Ancak bu kez x ekseni değerlerini sayılarına göre sıralayın, böylece bir iyilik varsa kolayca görünecektir.

  3. Histogramları # 2'ye bir güverte gibi bir araya getirdiğinizi ve 3B olarak gösterdiğinizi düşünün. Bunun gibi bir şey:
    3D histogram

  4. Üçüncü ekseni renkleri temsil etmek için kullanmak yerine, bu nedenle bir ısı haritası (2B histogram) kullanmak: 2D histogram
    Genel olarak kitapçılar bazı kategorileri diğerlerine tercih ederse, soldan sağa doğru güzel bir gradyan olarak görüntülenir.

Birden fazla histogramı temsil eden başka görselleştirme fikirleriniz / araçlarınız var mı?


4
Sanırım histogramlardan ziyade çubuk grafikler demek
Rob Hyndman

@Rob: Histogram, frekans dağılımını temsil eden özel bir çubuk grafik türü değil mi? Birçok kitapçı için kategori frekanslarını görselleştirmeye çalışıyorum.
nimcap

1
@nimcap Hayır, çünkü histogram sürekli bir değişkenin üzerindedir ve kitap kategorisi kategorik bir değişkendir.

@mbq Diyelim ki bir kitapçıda 3 kitap var ve kategorileri: B1: [c1, c2, c3] B2: [c1, c3] B3: [c1, c4]. Kategori sayılarını topladığımızda [c1 x 3, c2 x 1, c3 x 2, c4 x 1] elde ederiz. Bu bir histogram üretmek için yeterli değil mi?
nimcap

2
@nimcap Hayır, bir çubuk grafik oluşturmak yeterlidir. Histogram örneğin bir kitabın fiyatı için yapılabilir.

Yanıtlar:


12

Bildiğiniz gibi sorunuzun kolay cevapları yok!

Garip veya farklı kitap mağazaları bulmakla ilgilendiğinizi sanıyorum? Bu durumda, PCA gibi şeyleri deneyebilirsiniz ( daha fazla bilgi için wikipedia küme analizi sayfasına bakın).

Size bir fikir vermek için bu örneği ele alalım. 26 kitabınız var (A, B, .. Z isimleriyle). Aşağıdakiler hariç tüm kitapçılar benzer:

  1. Z Dükkanı sadece birkaç Tarih kitabı satmaktadır.
  2. Mağazalar OY ortalamadan daha fazla romantizm kitabı satıyor.

Başlıca bir komplo planı, daha fazla araştırma için bu mağazaları vurgular.

İşte bazı örnek R kodu:

> d = data.frame(Romance = rpois(26, 50), Horror = rpois(26, 100), 
               Science = rpois(26, 75), History = rpois(26, 125))
> rownames(d) = LETTERS
#Alter a few shops
> d[15:25,][1] = rpois(11,150)
> d[26,][4] = rpois(1, 10)
#look at the data
> head(d, 2)
       Romance Horror Science History
 A      36    107      62     139
 B      47     93      64     118
> books.PC.cov = prcomp(d)
> books.scores.cov = predict(books.PC.cov)
# Plot of PC1 vs PC2
> plot(books.scores.cov[,1],books.scores.cov[,2],
       xlab="PC 1",ylab="PC 2", pch=NA)
> text(books.scores.cov[,1],books.scores.cov[,2],labels=LETTERS)

Bu, aşağıdaki grafiği verir:

PCA çizimi http://img265.imageshack.us/img265/7263/tmplx.jpg

Dikkat:

  1. Shop z bir çıkış noktasıdır.
  2. Diğer dükkanlar iki ayrı grup oluşturur.

Diğer olasılıklar

GGobi'ye de bakabilirsiniz, hiç kullanmadım, ama ilginç görünüyor.


Değerli cevabınız için teşekkür ederim. Durumu anadilimde bile anlatmak zor :) Denememe izin verin. Kitapçıların belirli kategorileri tercih edip etmediklerini merak etmiyorum ancak kategorileri tercih edip etmediklerini görmek istiyorum. Aslında beklediğim bu. Diyelim ki 3 kitapçım var (B1, B2, B3) ve 4 kategori (C1, C2, C3, C4). Bunlar satış verileri: B1 (1, 1, 20, 20) B2 (90, 1, 1, 1), B3 (1, 1, 1, 30). Bu verilere bakarak bazı kategorileri diğerlerine tercih ettiklerini söyleyebilirim. Ama eğer veriler B1 (20, 30, 20, 20) B2 (90, 100, 100, 100), B3 (30, 30, 40, 40) gibiyse bunu söyleyemem.
nimcap

Örneğimde, OY dükkanları romantizm kitaplarını tercih ediyor. Bu yüzden bu dükkanlar PC grafiğinde ayrı bir gruptadır.
csgillespie

2
Bunu iyi bir genel cevap olarak oyladım, ancak pratik bir cevap olarak, birçok veri noktasıyla uğraşmak acımasız olacak.
John

1
+1 Bu kesinlikle OP'nin istediği şey değil, yine de kesinlikle istediği şey.

1
+1 PCA'nın "Earth-to-Earth" uygulaması için güzel bir örnek.
nico

3

Tanımlanmış bir adı (muhtemelen "paralel arsa") ve böyle görünüyor bir şey öneriyoruz:

alternatif metin

Temel olarak, tüm kitap mağazaları için tüm sayıları x ekseninde listelenen kategoriler üzerinde noktalar olarak çizer ve her kitapçıdan sonuçları bir çizgiyle bağlarsınız. Yine de bu 1M hatları için çok karışık olabilir. Konsept, csgillespie tarafından daha önce bahsedilen GGobi'den geliyor.


1
Paralel grafikler büyük ölçüde değişkenlerin "doğru" sıralamasına bağlıdır, bu nedenle çok fazla kategori için bu sıkıcı olacaktır. Doğru kaynak A.Inselberg, 1981 gibi görünüyor.
Benjamin Bannier

3
Bunlara paralel koordinat grafikleri denir: en.wikipedia.org/wiki/Parallel_coordinates
Simon Byrne

@Simon teşekkürler; @honk Katılıyorum, onları kullanmamamın bir nedeni bu.
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.