2

grid.table のテーブルを基本パッケージのプロットと組み合わせて単一のプロットにしようとしています。私が理解している限り、grid.table は ggplot によって生成されたものと同じタイプの出力を生成しました。したがって、問題はこのスレッドのものと似ています。

R Figure ウィンドウでベース グラフィックスと ggplot グラフィックスを組み合わせる

そのスレッドの解決策を適用しようとしましたが、うまくいきません。最初のテーブルは正しい位置に配置されていますが、2 番目のテーブルは正しくありません。そのスレッドの解決策は、grid.table によって生成されたテーブルが 1 つしかない場合に機能します。複数のテーブルで機能させるには、どのような変更を加える必要がありますか?

これが私のコードです:

library(gridBase)
library(gridExtra)

pdf("test-grid.pdf")
par(mfrow=c(2,2))

data(mtcars)
sample_table1 <- matrix(1,3,5)
sample_table2 <- matrix(2,2,2)

plot.new()
vps <- baseViewports()
pushViewport(vps$figure)
vp1 <-plotViewport()
grid.table(sample_table1)

plot.new()
vps <- baseViewports()
pushViewport(vps$figure)
vp1 <-plotViewport()
grid.table(sample_table2)

plot(mtcars$mpg, mtcars$cyl)
plot(mtcars$disp, mtcars$hp)

dev.off()
4

1 に答える 1

2

ビューポートをポップするのを忘れたので、2 番目grid.tableはまだ最初のビューポートにありました。したがってpopViewport()、各grid.tableコマンドの後に使用するだけで機能するはずです。

library(gridBase)
library(gridExtra)

pdf("test-grid.pdf")
par(mfrow=c(2,2))

data(mtcars)
sample_table1 <- matrix(1,3,5)
sample_table2 <- matrix(2,2,2)

plot.new()
vps <- baseViewports()
pushViewport(vps$figure)
vp1 <-plotViewport()
grid.table(sample_table1)
popViewport()

plot.new()
vps <- baseViewports()
pushViewport(vps$figure)
vp1 <-plotViewport()
grid.table(sample_table2)
popViewport()

plot(mtcars$mpg, mtcars$cyl)
plot(mtcars$disp, mtcars$hp)

dev.off()
于 2014-05-02T11:27:17.160 に答える