2012-04-28 19 views
1

R(格子を使用)、boxplotとbarchartの2つのグラフを結合しようとしています。私はボックスとバーの両方を垂直にしたい。 barchartについては、horizontal=FALSEオプションを使用します。しかしboxplotのために私はそのオプションを使うことができないことを知っている。 this postから、水平ボックスプロットを使用して垂直に回転します。回転したグラフと回転していないグラフを結合するR

私は1つの回転グラフと1つの回転していないグラフを結合したいと思います。ここに私が試したものがあります:

library(lattice) 

mydata <- data.frame(
     methods = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), 
     savings = c(38.1677115678,40.0271480111,3.0658967834,8.55162576,54.5599157619,52.5120636113,6.0234897727,8.1064331259,63.9865435108,64.7867073871,3.8590732507,7.7348316433,49.7059967478,53.8979070884,2.497892375) 
    ) 
attach(mydata) 
png("test.png", width=800, height=600) 

h1 = barchart(savings ~ methods, data=mydata, horizontal=FALSE, 
       ylab = "", main = "Predicted Savings", 
       scales=list(y=list(labels=c("","","","","","","","","","","","","",""),tick.number=10)) 
      ) 

require(grid) 
grid.newpage() 
pushviewport(viewport(angle = 90, name = "VP")) 
h2 = bwplot(savings, xlim=c(0,100), 
     xlab=list(label="predicted savings", fontsize=14), 
     scales = list(x = list(tick.number=10)), draw.in = "VP" 
    ) 
print(h2,newpage=FALSE, position=c(0.15, 0.95, 0.85, 1.2), more=TRUE) 
print(h1, newpage=FALSE, position=c(0.20, 0.00, 1.00, 1.0), more=TRUE) 

これは結果です。私もバサルトを回転させました。私はbarchartを描くときに私がdraw.in = "VP"オプションを使用しないので、回転しないと思った。しかし、明らかに私は間違っています。 barchartを回転させないようにする方法はありますか?現在、あなたが回転し、ビューポートで両方のプロットをプロットしている

enter image description here

答えて

3

。 h1をプロットする前にupViewport()に移動するか、単にビューポートを押す前にプロットする必要があります。

grid.newpage() 
print(h1, newpage=FALSE, position=c(0.20, 0.00, 1.00, 1.0), more=TRUE) 
pushViewport(viewport(angle = 90, name = "VP")) 
h2 = bwplot(savings, xlim=c(0,100), 
     xlab=list(label="predicted savings", fontsize=14), 
     scales = list(x = list(tick.number=10)), draw.in = "VP" 
    ) 
print(h2,newpage=FALSE, position=c(0.15, 0.95, 0.85, 1.2), more=TRUE) 
+0

ありがとう、それは魅力的です。 – ery

関連する問題