1

サイズが変化するグラフの山全体を作成しています。プロット サイズに関係なく、各グラフのグラフ マージン (上部の 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()
4

0 に答える 0