私はかなり幅広い画像を作成しており、ターゲット練習の連続トレーニング セッションをリストしています。
現時点では、これはあまり役に立たないグラフィックであり、各トレーニング セットのデータをより見やすくするために、画像を複数の行に折り返す必要があります。これまでのところ、トレーニング セットが属する行を示す 2 番目の変数を導入することで、これを管理してきました。欠点は、各行の上にストリップがあり、ほとんどまたはまったく役に立たないことです.
これを行う別の方法は、各行を個別の図として生成し、 を使用してそれらをマージすることgridExtra
ですgrid.arrange
。
幅の広い図を複数の行にラップする他の (エレガントな) 方法を探しています。可能であれば、各ファセットの上にストリップがないようにしたいと思います。すべての提案を歓迎します。
これは、これらの画像を生成するために使用したコードです。
library(ggplot2)
library(reshape2)
st <- 23 # number of training sets
sk <- 10 # number of shots per training set
dt <- sample(7:10, size = st * sk, prob = c(0.005, 0.15, 0.195, 0.65), replace = TRUE)
rslt <- as.data.frame(matrix(dt, nrow = 10))
names(rslt) <- paste("trening", seq_len(ncol(rslt)), sep = "")
rsltm <- melt(rslt, variable.name = "trening", value.name = "rezultat")
rsltm$trening <- ordered(rsltm$trening)
n <- 5 # number of trainings per row
st.vrst <- round(st/n)
vrsta <- paste("vrsta", seq_len(st.vrst), sep = "")
rsltm$vrsta <- rep(vrsta, each = sk * n, length.out = nrow(rsltm))
rm(vrsta)
# wide figure
ggplot(rsltm, aes(x = trening, y = rezultat)) +
geom_dotplot(binaxis = "y", stackdir = "center", show_guide = FALSE) +
scale_fill_manual(values = rep("red", st)) +
theme_bw()
# wrapped figure
ggplot(rsltm, aes(x = trening, y = rezultat, fill = trening)) +
geom_dotplot(binaxis = "y", stackdir = "center", show_guide = FALSE) +
scale_fill_manual(values = rep("red", st)) +
facet_wrap(~vrsta, nrow = st.vrst, scales = "free_x") +
theme_bw()