関数TraMineR
を使用してパッケージで作成された「状態シーケンスオブジェクト」のいくつかのプロットをプロットしようとしていplot_grid()
ます。私の主な問題は、seqplot()
関数で作成されたプロットをリストに保存できないことです。私の問題は、凡例または「サブ」プロットを配置する方法ではなく、実際にseqplotをグリッドにプロットする方法です。
ggscatterプロットをリストに保存し、そのリストを前にplot_grid()関数に渡したので、これは一般的に機能すると比較的確信しています。問題は主にによって生成されたオブジェクトタイプだと思いますseqplot()
。as.ggplot()
関数を使用してプロットを保存しようとしましたが、機能しませんでした(以下の例A)。
recordPlot()
関数の使用は多かれ少なかれ機能します。しかし、見栄えは良くありません(以下の例B + C)。
library(TraMineR)
library(ggplotify)
data(biofam)
biofam.lab <- c("Parent", "Left", "Married", "Left+Marr",
"Child", "Left+Child", "Left+Marr+Child", "Divorced")
biofam.seq <- seqdef(biofam[1:600,], 10:25, labels=biofam.lab)
# Example A ---------------------------------------------------------------
# not even able to store the plot
plot.list <- list()
plot.list[[1]] <- as.ggplot(seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start"))
# Example B and C ---------------------------------------------------------
plot.list <- list()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[1]] <- recordPlot()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[2]] <- recordPlot()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[3]] <- recordPlot()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[4]] <- recordPlot()
# Example B
plot_grid(plotlist = plot.list, ncol = 2)
# Example C
plot_grid(
plot_grid(plotlist = plot.list, ncol = 2),
plot_grid(plotlist = plot.list, ncol = 2)
)
グリッドにプロットしたい実際の要素を比較的自由に配置したいと思います。たとえば、例に示すように、13個のそのようなプロットと凡例を含むページを5 x3グリッドに保存したいとします。そのため、plot_grid()を使用すると、たとえば、よりもうまく機能すると思いますpar(mfrow = c(5,3))
。さらに、par()
「plot.new()のエラー:図の余白が大きすぎます」を使用します。
seqplot
内部的にベースを使用しますplot
。したがって、複数のグラフをプロットすると、がうまく機能しlayout
ます。レイアウトマトリックスを作成し、次々にプロットするだけです。凡例seqlegend
はプロットとして扱うこともできます。ここに、データの例と凡例のある4つのプロットがあります。
layout(matrix(c(1, 2, 2, 3:5), ncol=3, byrow=TRUE))
layout.show(5) # this line is just to get the preview below where the plots will be placed
seqplot(biofam.seq, type="I", with.legend=FALSE, sortv="from.start")
seqlegend(biofam.seq, cex=.9, ncol=5, position="bottom") # legend
seqplot(biofam.seq, type="I", with.legend=FALSE, sortv="from.start")
seqplot(biofam.seq, type="I", with.legend=FALSE, sortv="from.start")
seqplot(biofam.seq, type="I", with.legend=FALSE, sortv="from.start")
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加