web-dev-qa-db-ja.com

極端な値の違いがあるデータを視覚化する方法は?

クライアントアプリケーションが3D棒グラフスタイルでデータを視覚化するいくつかのルーチンに取り組んでいます。データは主に小さな値で構成され、大きな値はわずかです。例えば:

6,942,535,341
23,598
19,203
58,201

したがって、問題は、値が大きいと視覚化が役に立たなくなることです。このデータを表示する方法について何か提案はありますか…OR…おそらく、データをマッサージしてより視覚的に魅力的なものにする方法についての提案ですか?

42
onedeadgod

数学的な傾向がある人にとっては、答えはlog scaleを使用することです。

数学的でない人にとっては、チャートでブレークを表示してから、極値の方が良いかもしれません。

enter image description here

52
JohnGB

対数軸を使用できます。これにより、広範囲の変数をコンパクトに視覚化できます。

説明のために、これは非常に単純な対数視覚化です:


6 942 535 341
       23 598 
      419 203 
        8 201
            3

数値として表される各データムの長さは、(おおよそ)その数値のlog_10です。したがって、等幅フォントで数字を印刷するだけで、一種の自動棒グラフが表示されます。

27
Peter

John GBのソリューションは審美的には楽しいですが、科学分野は一般に、示されているようなスケールの改行を阻止します(多くの場合、誤解を招くグラフィックの陳腐な例です)。 クリーブランド(1984) は、フルスケールブレークを使用して別のパネルを作成し、値をさらに視覚的に区別することをお勧めします。

enter image description here

Jon Peltierには マルチパネルを使用した同様の例 がありますが、2番目に高い値のパネルに入るバーにグラデーション効果があります。

スケールブレークIMOはおそらく誰もがそうであるように悪くはありませんが、誰かが(すでに他の細かい回答に加えて)問題を与えている場合、これは簡単な代替策です!

12
Andy W

もう1つの次元を入手してください。値を面積として表します。正方形またはディスク。 アナモフィックマップ のように。

その後、値を表すためにさらに必要な場合は、キューブまたはボールを作成します。 :-)

編集:

彼らはこのテクニックを 10億ドルグラム で使用しています。

Graph comparing large quantities of money

7

対数スケールはおそらく最善の策ですが、それらはまだ違いの本当の広大さを捨ててしまいます。それは本当に情報が表示される方法によって伝えられる必要があるものに依存します。違いの広さが非常に重要である場合は、小さい数を非常に小さい線として単純にグラフ化することも適切です。

4
AJ Henderson

私は2つの可能なアプローチを考えます:

1-エリアを使用します。同様に、大きな長方形の領域に対する小さな正方形のドット。このアプローチの利点は、面積がメジャーの2乗に比例することです。

2-ズームを許可します。列をスケールで描画し、小さな値が表示されるまでズームインするか、大きな値がウィンドウに収まるまでズームアウトします。

2
Juan Lanus

ログスケールはこの問題に対する自然な答えですが、前述のように、一般的なユーザーに対して誤解を招く可能性があります。これに対する適切な解決策は、データポイントを段階的に表示し、アニメーションを使用して、ユーザーがチャートを理解できるようにガイドすることです。

私が言っていることを説明するために、あなたが見ることができる NY Timesからのこの視覚化 を見てください。

enter image description here

これらは私が強調するテクニックです:

  1. ページをロードすると、アニメーションによってデータセットの一部が配置されます。より高い値(この場合はFacebookのIPOデータ)が今のところ省略されていることに注意してください。目盛りは現時点では線形であり、より自然な読みを提供します。

  2. ユーザーが「次へ」をクリックすると、Facebookデータが表示されます。私たちはその顕著な違いを認識しています。スケールはまだ線形です。

enter image description here

  1. ユーザーがもう一度「次へ」をクリックすると、スケールが対数になり(何が起こっているかを説明する短いテキストもあり)、データを読み取る別の方法が提供されます。これで、ユーザーは、極端なデータの実際のサイズに焦点を当てることなく、より簡単に詳細にドリルダウンできます。

enter image description here

2
Nobita

球形のオブジェクトを使用するという考えが気に入っています。大きな領域は、小さな領域を表示したまま、明らかに数倍の領域を保持できます。

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

2
Dom Ramirez

さて、私はこの問題に苦しんでいました。ログスケールを使用することはお勧めしません。最初にすべてのユーザーがこのスケールを理解するわけではありません。2番目のスケールでは、値が近い場合、それらの違いはグラフで目立ちません。

2つの解決策をお勧めします。

  1. グラフを分割する:ただし、スケールを変更することを忘れないでください。スケールは最大値ではなく残りの小さい値に調整する必要があります。ユーザーにとっては、小さい値間の微妙な違いを確認することの方が重要です。バーも大きいほど簡単です。クリックされる

enter image description here

  1. 球体-優れたソリューションでもあります。球体は比例しないはずです。比例している場合、小さい値は表示されません-非常に小さいため、最大値が1つだけ目立ちます

enter image description here

2
steppenwolf

視点を最小の差異を強調するのに十分近くに移動し、最も極端な値を完全に表示するのに十分に遠くに移動できるように、コントロールを提供することをお勧めします。 X軸は変化しないため、拡大と縮小はY軸上でのみ必要です。

不連続なスケールは対数スケールに似ています。線形として認識されないようにするにはたくさん認知的努力が必要です。そのレベルの努力を必要としない方がいいです。

0
MMacD