我有一个如下的绘图管道
df %>%
count(sub_category, name="count") %>%
arrange(desc(count)) %>%
slice_head(n=10) %>%
ggplot(aes(x=reorder(sub_category, count), y=count)) +
geom_bar(stat='identity', fill='steelblue') +
geom_text(aes(label=count), position=position_stack(vjust=0.5)) +
labs(title="Top 10 Sub-Categories", x="Product Sub-Category", caption=paste0('total items=', sum(count)))
正如您在上面的代码中可以看到的,只有df的前10行(按子类别分组)被提供给ggplot()
,并且在labs()
函数中,我试图添加一个caption
,其项目总数(行)仅包含在前10行中。是否有一种方法可以参考ggplot使用的表,就像在dplyr中,我们可以做.$count
或.data[['count']]
?
我知道我可以存储中间表,然后将其传递给ggplot2,但我只是好奇是否有一种方法可以在不存储中间结果的情况下完成上述操作。
这是可能的。试试这个
mtcars %>%
{ggplot(data=., aes(disp, hp)) +
geom_point() +
labs(title="Top 10 Sub-Categories",
x="Product Sub-Category",
caption=paste0('total items=', sum(.$cyl)))}