gpt4 book ai didi

r - 从分面 ggplot 中提取行数

转载 作者:行者123 更新时间:2023-12-02 08:13:19 24 4
gpt4 key购买 nike

考虑一个多面的ggplot

plotdf <- data.frame(x = 1:21, 
y = 3*(1:21)+4,
z = c(rep(1,3), rep(2,3), rep(3,3), rep(4,3), rep(5,3), rep(6,3), rep(7,3)))

p <- ggplot2::ggplot(plotdf) +
ggplot2::geom_point(ggplot2::aes(x=x,y=y)) +
ggplot2::facet_wrap(~ z)

enter image description here

如何从 p 中提取行数(或列数)?

p$facet 似乎包含相关信息:
p$facet
<ggproto object: Class FacetWrap, Facet>
compute_layout: function
draw_back: function
draw_front: function
draw_labels: function
draw_panels: function
finish_data: function
init_scales: function
map: function
map_data: function
params: list
render_back: function
render_front: function
render_panels: function
setup_data: function
setup_params: function
shrink: TRUE
train: function
train_positions: function
train_scales: function
super: <ggproto object: Class FacetWrap, Facet>

但我无法从中提取 nrow 或 ncol 。有什么建议么?

最佳答案

跟进@Aditya 的回答,这是(从 ggplot 3.1.1 开始):

library(magrittr)
gg_facet_nrow_ng <- function(p){
assertive.types::assert_is_any_of(p, 'ggplot')
p %>%
ggplot2::ggplot_build() %>%
magrittr::extract2('layout') %>%
magrittr::extract2('layout') %>%
magrittr::extract2('ROW') %>%
unique() %>%
length()
}

关于r - 从分面 ggplot 中提取行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44107119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com