179

ヒストグラムと散布図は、データと変数間の関係を視覚化する優れた方法ですが、最近、どの視覚化手法が欠けているのか疑問に思っています。最も活用されていないタイプのプロットは何だと思いますか?

回答は次のとおりです。

  1. 実際にはあまり一般的に使用されません。
  2. 背景についてあまり議論しなくても理解できるようにします。
  3. 多くの一般的な状況に適用できます。
  4. 再現可能なコードを含めて例を作成します (できれば R で)。リンクされた画像がいいでしょう。
4

15 に答える 15

89

私は他のポスターに本当に同意します.Tufteの本は素晴らしく、読む価値があります.

まず、今年初めの「Looking at Data」のggplot2 と ggobi に関する非常に優れたチュートリアルを紹介します。それを超えて、R からの 1 つの視覚化と 2 つのグラフィックス パッケージ (ベース グラフィックス、ラティス、または ggplot ほど広く使用されていません) を強調します。

ヒートマップ

多変量データ、特に時系列データを処理できるビジュアライゼーションが本当に好きです。 これには、ヒート マップが役立ちます。Revolutions ブログで、David Smithが取り上げた非常に優れたものがあります。Hadley の好意による ggplot コードは次のとおりです。

stock <- "MSFT"
start.date <- "2006-01-12"
end.date <- Sys.Date()
quote <- paste("http://ichart.finance.yahoo.com/table.csv?s=",
                stock, "&a=", substr(start.date,6,7),
                "&b=", substr(start.date, 9, 10),
                "&c=", substr(start.date, 1,4), 
                "&d=", substr(end.date,6,7),
                "&e=", substr(end.date, 9, 10),
                "&f=", substr(end.date, 1,4),
                "&g=d&ignore=.csv", sep="")    
stock.data <- read.csv(quote, as.is=TRUE)
stock.data <- transform(stock.data,
  week = as.POSIXlt(Date)$yday %/% 7 + 1,
  wday = as.POSIXlt(Date)$wday,
  year = as.POSIXlt(Date)$year + 1900)

library(ggplot2)
ggplot(stock.data, aes(week, wday, fill = Adj.Close)) + 
  geom_tile(colour = "white") + 
  scale_fill_gradientn(colours = c("#D61818","#FFAE63","#FFFFBD","#B5E384")) + 
  facet_wrap(~ year, ncol = 1)

最終的には次のようになります。

代替テキスト

RGL: インタラクティブ 3D グラフィックス

学ぶ価値のあるもう 1 つのパッケージはRGLで、インタラクティブな 3D グラフィックスを簡単に作成できます。これについてはオンラインで多くの例があります (rgl のドキュメントを含む)。

R-Wiki には、 rgl を使用して 3D 散布図をプロットする方法の良い例があります。

グゴビ

知っておく価値のある別のパッケージはrggobiです。このテーマに関する Springer の本と、 「Looking at Data」コースを含め、多くの優れたドキュメント/例がオンラインにあります。

于 2010-01-16T18:17:34.670 に答える
58

私は dotplots が本当に好きで、適切なデータの問題について他の人にdotplotsを勧めると、彼らはいつも驚き、喜んでくれます。それらはあまり使用されていないようで、その理由がわかりません。

Quick-R の例を次に示します。 車のデータのドットプロット

私はクリーブランドがこれらの開発と普及に最も責任があると信じており、彼の本の例 (欠陥のあるデータがドットプロットで簡単に検出された) は、それらの使用に対する強力な議論です。上記の例では、1 行に 1 つのドットしか配置されていませんが、その真の力は、各行に複数のドットがあり、どれがどれであるかを説明する凡例があることに注意してください。たとえば、3 つの異なる時点に異なる記号や色を使用すると、さまざまなカテゴリの時間パターンを簡単に把握できます。

次の例 (すべて Excel で作成されています!) では、どのカテゴリがラベル スワップの影響を受けた可能性があるかを明確に確認できます。

2 グループのドットプロット

于 2011-02-28T04:17:49.453 に答える
56

極座標を使用したプロットは、確かに十分に活用されていません。正当な理由があると言う人もいます。それらの使用を正当化する状況は一般的ではないと思います。また、そのような状況が発生した場合、極座標プロットは、線形プロットではできないデータのパターンを明らかにできると思います。

これは、データが線形ではなく本質的に極である場合があるためだと思います。たとえば、周期的 (1 日 24 時間の時間を複数日にわたって表す x 座標) であったり、データが以前に極フィーチャ空間にマッピングされていたりします。

これが例です。このプロットは、時間ごとの Web サイトの平均トラフィック量を示しています。午後 10 時と午前 1 時の 2 つのスパイクに注目してください。サイトのネットワーク エンジニアにとって、これらは重要です。また、それらが互いに近くに発生することも重要です (わずか2時間の間隔)。しかし、従来の座標系で同じデータをプロットすると、このパターンは完全に隠されます。直線的にプロットすると、これら 2 つのスパイクは20時間間隔で表示されますが、連続した日でも 2 時間間隔で表示されます。上の極座標チャートは、これを簡潔かつ直感的な方法で示しています (凡例は必要ありません)。

1 時間目と 22 時間目にピークがあるサイト トラフィックを示すポーラー チャート

Rを使用してこのようなプロットを作成するには(私が知っている)2つの方法があります(上記のプロットはRで作成しました)。1 つは、ベース グラフィック システムまたはグリッド グラフィック システムで独自の関数をコーディングすることです。より簡単な別の方法は、循環パッケージを使用することです。使用する関数は「rose.diag」です。

data = c(35, 78, 34, 25, 21, 17, 22, 19, 25, 18, 25, 21, 16, 20, 26, 
                 19, 24, 18, 23, 25, 24, 25, 71, 27)
three_palettes = c(brewer.pal(12, "Set3"), brewer.pal(8, "Accent"), 
                   brewer.pal(9, "Set1"))
rose.diag(data, bins=24, main="Daily Site Traffic by Hour", col=three_palettes)
于 2010-01-18T00:19:25.147 に答える
54

散布図に非常に多くのポイントがあり、完全に混乱している場合は、平滑化された散布図を試してください。次に例を示します。

library(mlbench) ## this package has a smiley function
n <- 1e5 ## number of points
p <- mlbench.smiley(n,sd1 = 0.4, sd2 = 0.4) ## make a smiley :-)
x <- p$x[,1]; y <- p$x[,2]
par(mfrow = c(1,2)) ## plot side by side
plot(x,y) ## left plot, regular scatter plot
smoothScatter(x,y) ## right plot, smoothed scatter plot

hexbinパッケージ (@Dirk Eddelbuettel が提案) は同じ目的で使用されますが、パッケージsmoothScatter()に属しているためgraphics、標準の R インストールの一部であるという利点があります。

通常または平滑化された散布図としてのスマイリー

于 2011-08-15T12:56:25.693 に答える
30

スパークラインやその他の Tufte のアイデアについては、CRANのYaleToolkitパッケージが関数と. sparklinesparklines

大規模なデータセットに役立つもう 1 つのパッケージは、単純な散布図には大きすぎる可能性があるデータセットを処理するために、巧妙にデータをバケットに「ビン化」するhexbinです。

于 2010-01-16T17:30:50.873 に答える
29

ヴァイオリン プロット(ボックス プロットとカーネル密度を組み合わせたもの) は、比較的風変わりでかなりクールです。Rのvioplotパッケージを使用すると、非常に簡単に作成できます。

以下に例を示します (ウィキペディアのリンクにも例が示されています)。

ここに画像の説明を入力

于 2011-11-03T03:22:43.913 に答える
25

私がちょうどレビューしていたもう 1 つの優れた時系列の視覚化は、「バンプ チャート」です ( 「Learning R」ブログのこの投稿で紹介されているように)。これは、経時的な位置の変化を視覚化するのに非常に役立ちます。

作成方法についてはhttp://learnr.wordpress.com/で読むことができますが、最終的には次のようになります。

代替テキスト

于 2010-01-20T21:45:35.733 に答える
21

また、タフテの箱ひげ図の修正も気に入っています。これにより、小さな倍数比較をはるかに簡単に行うことができます。これは、水平方向に非常に「薄く」、余分なインクでプロットが乱雑にならないためです。ただし、かなり多数のカテゴリで最適に機能します。プロットにいくつかしかない場合は、通常の (Tukey) ボックスプロットの方が見栄えがよくなります。

library(lattice)
library(taRifx)
compareplot(~weight | Diet * Time * Chick, 
  data.frame=cw , 
  main = "Chick Weights",
  box.show.mean=FALSE,
  box.show.whiskers=FALSE,
  box.show.box=FALSE
  )

比較プロット

これらを作成する他の方法 (他の種類の Tufte boxplot を含む)については、この質問で説明します

于 2011-08-07T16:06:30.320 に答える
19

キュートで (歴史的に) 重要な幹葉図 (Tufte も大好き!) を忘れてはなりません。データの密度と形状の直接的な数値の概要が得られます (もちろん、データ セットが約 200 ポイントより大きくない場合)。R では、関数stemは (ワークスペースで) 幹葉表示を生成します。gstemパッケージfmsbの関数を使用して、グラフィック デバイスに直接描画することを好みます。以下は、幹ごとに表示されたビーバーの体温の分散です (データはデフォルトのデータセットにある必要があります)。

  require(fmsb)
  gstem(beaver1$temp)

ここに画像の説明を入力

于 2011-12-20T23:51:35.417 に答える
18

一度に多くの時系列を視覚化するための水平グラフ(pdf)。

多変量解析用の平行座標プロット(pdf)。

分割表を視覚化するための関連プロットとモザイクプロット ( vcdパッケージを参照)

于 2010-01-18T17:48:48.627 に答える
15

Tufte の優れた業績に加えて、William S. Cleveland の本: Visualizing Dataと The Elements of Graphing Dataをお勧めします。それらは優れているだけでなく、すべて R で作成されており、コードは公開されていると思います。

于 2010-01-17T21:27:03.250 に答える
14

ボックスプロット!R ヘルプの例:

boxplot(count ~ spray, data = InsectSprays, col = "lightgray")

私の意見では、データをざっと見たり、分布を比較したりするのに最も便利な方法です。より複雑なディストリビューションには、 と呼ばれる拡張機能がありvioplotます。

于 2010-06-21T22:39:07.667 に答える
11

モザイク プロットは、前述の 4 つの基準をすべて満たしているように思えます。rのmosaicplotの下に例があります。

于 2010-01-17T21:22:14.773 に答える
10

Edward Tufte の作品、特にこの本をチェックしてください

また、彼の出張プレゼンテーションを視聴することもできます。とても良くて、彼の本が 4 冊入っています。(私は彼の出版社の株式を所有していないと誓います!)

ところで、私は彼のスパークライン データ視覚化手法が気に入っています。サプライズ!Google はすでにそれを作成し、Google Codeに公開しています

于 2010-01-16T06:09:17.990 に答える
0

要約プロット?このページで述べたように:

要約統計量と不確実性の視覚化

于 2010-12-28T23:28:43.713 に答える