2012-01-05 18 views
1

plotを使用してこのプロットを横向きにしてヒストグラムバーが水平になるようにするにはどうすればよいですか?Rプロット:plot()を使用して水平線でヒストグラムを作成する方法

size<- abs(rnorm(20,10,10)) 
age<-c(seq(1, 20, by=2)) 
plot(size~age, type=("n")); lines(size~age, type=c("l"), lines(size~age, type=c("h"))) 

enter image description here

ヒストグラムライン横で私が欲しいのは、大体このようなものです:私は

plot(size~age, type=("n"), yaxt="n", xaxt="n", ylab=""); lines(size~age, type=c("l"), lines(size~age, type=c("h"))); axis(4); axis(1,las=2) 

を行なったし、その後、回転

enter image description here

他のソフトウェアでの画像出力。

plot機能を使用して出力プロットを横向きに取得する方法を知りたいので、RのグループをRの外側で回転させることなく作成できます。

UPDATE @csgillespieから非常に役立つ提案におかげで、私は私の方法で私を得ているこの、持っている:

size<- abs(rnorm(20,10,10)) 
age<-c(seq(1, 40, by=2)) # sorry for the typo in the first set of example data above 
plot(-age~size, type="n",yaxt="n", ylab="Age", xlab="Size") 
lines(-age~size) 
segments(0, -age, size, -age) 
axis(2, labels=c(seq(0,max(age), by=5)), at=-c(seq(0,max(age), by=5)), las=1) # this is a more general approach to labelling the axis ticks 

をし、ここではない、かなりまだ(プロットを結果として、私は私だと思います)ここから残りの部分を行うことができます。

enter image description here

+0

さらにコメントを手動で追加します。http://stackoverflow.com/questions/ 3792803/r-base-graphicsのプロットを可能にする – Seb

答えて

3

手動スケールを追加し、その後-ageを使用することによって、あなたが欲しいものを得ることができます。

plot(-age~size, type="n",yaxt="n", xlab="", ylab="Age") 
lines(-age~size) 
segments(0, -age, size, -age) 
axis(2, labels=c(0,5,10,15,20), at=-c(0,5,10,15,20), las=1) 

上記のコードは、y軸のラベルが回転されている点を除き、図の例と同じプロットを生成します。あなたは、y軸ラベルを回転させたい場合は、plotコマンドでylab=""を使用して、あなたがここで見つけることがtext

enter image description here

+0

ありがとうございました!私はそれが機能のサインを変えるのと同じくらい単純であることは知らなかった。私も前に 'セグメント 'に出くわしていなかったので、とても役に立ちました。私は実際のデータの方が効率的な目盛りにラベルを付ける、より一般的なアプローチを行った(私の更新を参照)。再度、感謝します – Ben

関連する問題