2012-01-24 2 views
2

次のRスクリプトは、プロットに収まない高さのバーを生成します。バーはy軸を超え、注釈(パーセンテージ)は表示されません。どのようにして、全体の高さの棒とその注釈を表示する棒グラフを生成できますか?高さの高いバーをバープロットに合わせるにはどうしたらいいですか?

png(filename = "plot.png") 
x <- c("A", "B") 
y <- c(2e6 + 10, 400) 
sum_Y <- sum(y) 
midpoints <- barplot(height = y, log = "y") 
text(midpoints, y, sprintf("%.2f%%", y/sum_Y * 100), pos = 3) 
dev.off() 

a bar plot with a tall bar

答えて

1

あなたはggplot2でそれを行うことができます:

library(ggplot2) 
qplot(x,y,geom="bar",log="y") + geom_text(aes(y=y*1.5, label=sprintf("%.2f%%", y/sum_Y * 100))) 

enter image description here

+0

感謝を。 y軸のラベルがy軸のラベルに近すぎます。私は 'ggplot2'に慣れていません。あなたは 'ggplot2'のマージンをどのように変更しますか?私はそれらにもっと精通しているため、プレーンなプロットを好むでしょう。 – reprogrammer

+0

あなたのプロットはログスケールされていませんか? – reprogrammer

+1

@reprogrammerログスケールに気付かなかったので、私はそれを含めて編集しました。 'ggplot2'を学ぶだけの価値があります。この記事は非常に興味深い例で、余白を変更する方法を示しています:http://learnr.wordpress.com/2009/04/23/ggplot2-dont-tis-with-excel/ – James

5
png(filename = "plot.png") 
x <- c("A", "B") 
y <- c(2e6 + 10, 400) 
sum_Y <- sum(y) 
midpoints <- barplot(height = y, log = "y", ylim=c(5e1,5e6)) 
text(midpoints, y, sprintf("%.2f%%", y/sum_Y * 100), pos = 3) 
dev.off() 

Rは、それがそのログスケールの制限として受け入れるかについてかなりうるさいです。

enter image description here

+0

'ylim'を' c(1,5e6) 'に変更することをお勧めします。 – reprogrammer

+0

申し訳ありません。私はその点を見ない。 –

+0

私のオリジナルプロットの下限と一貫していること。 – reprogrammer

1

(@Dwin ylab調整に基づいて)別のオプションはplotrixパッケージを使用することです。あなたは対数目盛ラベルをよりプレイしたい場合は、barpheight.atheight.labオプションをチェック:あなたの迅速な対応のための

require(plotrix) 
png(filename = "plot.png") 
x <- c("A", "B") 
y <- c(2e6 + 10, 400) 
sum_Y <- sum(y) 
midpoints <- barp(height = y, ylog = T, ylim=c(1,5e6)) 
text(y, sprintf("%.2f%%", y/sum_Y * 100), pos = 3) 
dev.off() 

enter image description here

+0

@ DWinの答えに 'plotrix'を使う利点は何ですか? – reprogrammer

+0

あなたはylimをc(1、5e6)に変更することをお勧めします。上限を増やしても下限は変更しないでOKです。 – reprogrammer

+0

私はそれが_cosmetic_利点だと言います。 'plotrix'マニュアルが指摘しているように、' ylog'引数はy軸上にログスケールを生成します。現在のところ、prettyや 'axTicks'は軸チックの素敵なセットを生成しないようですので、これらの位置を' height.at'_に渡すのが最善です。私はあなたが標準的なバープロットでその柔軟性を持っているとは思わない。 –

関連する問題