サイズが変化するグラフの山全体を作成しています。プロット サイズに関係なく、各グラフのグラフ マージン (上部の y 軸の値) の特定のポイントに記号 (アスタリスクなど) を表示する必要があります。今は x/y ごとに手動で定義していtextGrob
ますが、もっと良い方法が必要です。
プロット サイズは、データセット内のカテゴリの数によって決まります (以下のおもちゃのデータ)。理想的には、出力プロットのパネル サイズは同じになります (余白サイズをインチで定義し、その値をheight
パラメーターに追加することで制御できると思いますか?)。通常、幅は変更されませんが、定義されたデバイス幅 (およびプロット マージン) に基づいて x と y の両方の配置を自動化すると便利です。
本当にありがとう!
library(ggplot2)
library(gridExtra)
set.seed(123)
df <- data.frame(x = rnorm(20, 0, 1), y = rnorm(20, 0, 1), category = rep(c("a", "b"), each = 10))
## plot 1
sub <- df[df$category == "a",]
height = 2*length(unique(sub$category))
p <- ggplot(sub) +
geom_point(aes(x = x, y = y)) +
facet_grid(category ~ .)
jpeg(filename = "fig1.jpg",
width = 6, height = height, units = "in", pointsize = 12, res = 900,
quality = 100)
g <- arrangeGrob(p, sub = textGrob("*", x = 0.07, y = 10.15, hjust = 0, vjust=0, #### puts the top discharge value; might need to be adjusted manually in following years
gp = gpar(fontsize = 15)))
grid.draw(g)
dev.off()
## plot 2
height = 2*length(unique(df$category))
p <- ggplot(df) +
geom_point(aes(x = x, y = y)) +
facet_grid(category ~ .)
jpeg(filename = "fig2.jpg",
width = 6, height = height, units = "in", pointsize = 12, res = 900,
quality = 100)
g <- arrangeGrob(p, sub = textGrob("*", x = 0.07, y = 23.1, hjust = 0, vjust=0, #### puts the top discharge value; might need to be adjusted manually in following years
gp = gpar(fontsize = 15)))
grid.draw(g)
dev.off()