ggplotが持つファセットの数をプログラムで確認するにはどうすればよいですか?


13

以下はコードとグラフです。

グラフには3つのファセットがあります。the_plot3つのファセットがある場所はどこにありますか?はい、mtcarsデータフレームまたはから取得できますがthe_plot$data、データ分析を再作成したくありません。むしろ、のグラフィック要素を調べたいthe_plotので、アプリケーションロジックを複数の場所に複製する必要はありません。 the_plot$facet私が認識したものは何も表示されず、他のプロット変数も表示されません。

tidyverse 1.3.0を使用しています。

library(tidyverse)
data(mtcars)
the_plot<-ggplot(mtcars, aes(mpg, disp, group=cyl)) + facet_wrap(~cyl) + geom_point()
the_plot

多面的なプロット


おそらくggplot_build(the_plot)$layout$layoutstackoverflow.com
questions / 44107119 /…

いくつかの詳細を追加してください。the_plotプロットに表示されるものではなく、プロットしたいもの(データ、マッピング、テーマなど)の説明です。the_plotコンソールで書き込むときは、実際にを呼び出してprint(the_plot)います。これにより、ファセットのスケール、数、位置などを実現するプロセスが開始され、ボックス、ライン、テキストがグラフィックデバイスに出力されます。
MrGumble

回答:


12

gg_build()-関数でggplotデータにアクセスできます

out <- ggplot_build(the_plot)

length(levels(out$data[[1]]$PANEL))
[1] 3

8

別の方法

library(ggplot2)
data(mtcars)
the_plot<-ggplot(mtcars, aes(mpg, disp, group=cyl)) + facet_wrap(~cyl) + geom_point()
pb <- ggplot_build(the_plot)
pb$layout$layout$PANEL
#> [1] 1 2 3
#> Levels: 1 2 3

2020-04-21にreprexパッケージ(v0.3.0)によって作成されました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.