複数の「ヒストグラム」(棒グラフ)の視覚化


9

データを視覚化する正しい方法を選択するのが困難です。我々は持っていると言う書店販売している本を、そしてすべての本は、少なくとも一つの持っているカテゴリを

書店の場合、本のすべてのカテゴリーをカウントすると、その書店の特定のカテゴリーに該当する本の数を示すヒストグラムが取得されます。

書店の動作を視覚化したいのですが、他のカテゴリよりもカテゴリを好むかどうかを確認したいと思います。彼らがまとめてSFを支持しているかどうかは知りたくありませんが、すべてのカテゴリを平等に扱っているかどうかは知りたいです。

約100万冊の書店があります。

私は4つの方法を考えました:

  1. データをサンプリングし、500の書店のヒストグラムのみを表示します。10x10グリッドを使用して、5つの個別のページに表示します。4x4グリッドの例:

    複数のヒストグラム1

  2. #1と同じ。ただし、今回はカウントdescに従ってx軸の値を並べ替えます。したがって、好意がある場合は簡単に確認できます。

  3. #2のヒストグラムをデッキのようにまとめて3Dで表示することを想像してみてください。このようなもの:
    3Dヒストグラム

  4. 色を表すために3番目の軸を使用して色を表現する代わりに、ヒートマップ(2Dヒストグラム)を使用 2Dヒストグラム
    します。

複数のヒストグラムを表す他の視覚化のアイデア/ツールはありますか?


4
ヒストグラムではなく棒グラフを意味していると思います
Rob Hyndman 2010

@Rob:ヒストグラムは、度数分布を表す特別なタイプの棒グラフではありませんか?私は多くの書店のカテゴリー頻度を視覚化しようとしています。
nimcap

1
@nimcapいいえ、ヒストグラムは連続変数上にあり、本のカテゴリーはカテゴリー変数であるためです。

@mbq書店に3冊の本があり、そのカテゴリはB1:[c1、c2、c3] B2:[c1、c3] B3:[c1、c4]であるとします。カテゴリ数を集計すると、[c1 x 3、c2 x 1、c3 x 2、c4 x 1]が得られます。これはヒストグラムを生成するのに十分ではありませんか?
nimcap

2
@nimcapいいえ、棒グラフを生成するだけで十分です。ヒストグラムは、例えば本の価格で行うことができます。

回答:


12

あなたが発見したように、あなたの質問に対する簡単な答えはありません!

私はあなたが奇妙な、または異なる書店を見つけることに興味があると思いますか?これが事実である場合、PCAなどのことを試すことができます(詳細については、ウィキペディアのクラスター分析ページを参照してください)。

あなたにアイデアを与えるために、この例を考えてください。26書店(名前A、B、.. Z)があります。以下を除いて、すべての書店は同様です。

  1. ショップZが販売する歴史書はほんのわずかです。
  2. ショップOYは、平均よりも多くのロマンスの本を販売しています。

主成分プロットは、これらのショップをさらに調査するために強調表示します。

以下はサンプルRコードです。

> 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)

これにより、次のプロットが得られます。

PCAプロットhttp://img265.imageshack.us/img265/7263/tmplx.jpg

次のことに注意してください。

  1. ショップzは外れているポイントです。
  2. 他のショップは2つの異なるグループを形成します。

その他の可能性

GGobiも見ることができます。私はこれを使用したことがありませんが、面白そうです。


貴重なご回答ありがとうございます。私の母国語でも状況を説明するのは難しい:)試してみましょう。書店が特定のカテゴリーを支持しているかどうかは興味がありませんが、カテゴリーを支持しているかどうかを確認したいと思います。実際、これは私が期待していることです。3つの書店(B1、B2、B3)と4つのカテゴリ(C1、C2、C3、C4)があるとします。これらは売上データです:B1(1、1、20、20)B2(90、1、1、1)、B3(1、1、1、30)。このデータを見ると、一部のカテゴリが他のカテゴリよりも好まれていることがわかります。しかし、データがB1(20、30、20、20)B2(90、100、100、100)、B3(30、30、40、40)のようなものである場合、私はそれを言うことはできません。
nimcap

私の例では、ショップOYはロマンスの本を好みます。これが、PCプロットでこれらのショップが異なるグループに属している理由です。
csgillespie 2010

2
私はこれを良い一般的な回答として投票しましたが、実際的な回答として、その多くのデータポイントを処理することは残忍なことになるでしょう。
John

1
+1これは確かにOPが望んでいることではありませんが、それでも彼女が望んでいるはずです。

1
+1 PCAの「地から地まで」のアプリケーションの素晴らしい例。
nico

3

定義された名前(おそらく「並列プロット」)を持たないものを提案し、次のようにします。

代替テキスト

基本的に、すべての書店のすべてのカウントをx軸にリストされたカテゴリーのポイントとしてプロットし、各書店の結果を線で結びます。それでも、これは100万行には絡まりすぎる可能性があります。このコンセプトはcsgillespieですでに言及されているGGobiから来ています。


1
並列プロットは、変数の「正しい」順序に大きく依存しているため、カテゴリが多すぎると、面倒になります。そして、正しいソースはA.Inselberg、1981年のようです
ベンジャミンBannier

3
それらは平行座標プロットと呼ばれます:en.wikipedia.org/wiki/Parallel_coordinates
Simon Byrne

@サイモンありがとう; @honk同意する、これが私がそれらを使用しない理由の1つです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.