web-dev-qa-db-ja.com

Rのデータ値またはパーセンテージでヒストグラムバーにラベルを付ける方法

ヒストグラムの各バーに、そのビン内のカウント数またはそのビン内の合計カウントのパーセントのいずれかでラベルを付けたいと思います。これを行う方法があるはずだと確信していますが、私はそれを見つけることができませんでした。このページには、SASヒストグラムが基本的に私がやろうとしていることを行うヒストグラムがいくつかあります(ただし、サイトにはRバージョンがないようです): http:/ /www.ats.ucla.edu/stat/sas/faq/histogram_anno.htm

可能であれば、必要に応じて、ラベルをバーの上またはバーの内側のどこかに配置できる柔軟性があると便利です。

ベースのRプロット機能を使用してこれを実行しようとしていますが、ggplot2およびラティスでもこれを実行する方法に興味があります。

20
eipi10

カウント数を含めるには、_labels=TRUE_を設定するだけです。

以下の例は、 hist() ヘルプページの例からわずかに変更されています。

_hist(islands, col="gray", labels = TRUE, ylim=c(0, 45))
_

enter image description here

パーセンテージの取得はもう少し複雑です。 この同様の質問 への答えでもう少し詳しく説明するように、hist()への呼び出しによって返されたオブジェクトを直接操作することを知っている唯一の方法です。

_histPercent <- function(x, ...) {
   H <- hist(x, plot = FALSE)
   H$density <- with(H, 100 * density* diff(breaks)[1])
   labs <- paste(round(H$density), "%", sep="")
   plot(H, freq = FALSE, labels = labs, ylim=c(0, 1.08*max(H$density)),...)
}

histPercent(islands, col="gray")
_

enter image description here

36
Josh O'Brien

バープロットまたはヒストグラムのバーの上部に数字を追加すると、バーの視覚的解釈がゆがみ、上部近くのバーの内側にラベルを配置しても、ファジートップエフェクトが作成され、視聴者がグラフを適切に解釈しにくくなります。数値に関心がある場合、適切なテーブルを作成するだけでなく、レイアウトが不十分なテーブルが作成されます。

数値を追加する必要があると本当に感じている場合は、バーの下または上マージンに沿って配置すると、比較しやすくなり、グラフの視覚的な解釈を妨げないように整列することができます。ラベルはtextまたはmtext関数を使用してベースグラフに追加でき、xの位置はhist関数からの戻り値にあります。プロットの高さは、grconvertY関数を使用して計算できます。

5
Greg Snow