1

ボックスプロットと棒グラフの2つのグラフをRで(格子を使用して)結合しようとしています。ボックスとバーの両方を垂直にしたい。棒グラフの場合、horizontal=FALSEオプションを使用します。しかし、箱ひげ図については、そのオプションを使用できないことを知っています。この投稿から、水平ボックスプロットを使用して垂直に回転させます。

したがって、結合したい回転したグラフと回転していないグラフが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)

そして、これが結果です。棒グラフも回転させました。draw.in = "VP"棒グラフを描画するときにオプションを使用しない ので、回転しないと思いました。しかし、明らかに私は間違っています。下の棒グラフを回転させずに取得する方法はありますか。

ここに画像の説明を入力

4

1 に答える 1

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)
于 2012-04-28T21:36:39.547 に答える