Mik*_*nce 3 r ggplot2 tidyverse
data我经常遇到这样的场景:不同的几何对象需要查看提供给初始调用的参数的数据子集ggplot()。
通常,这发生在长链之后可视化某些内容的情况下,我实际上不需要在工作区中保存数据,但我当前的解决方法是这样做,然后在每个几何中显式引用它,例如:
(
#...
# long chain
# ...
) -> to_plot
(
ggplot()
+ geom_ribbon(
data = (
to_plot #using intermediate object saved to workspace
%>% dplyr::filter(
cells_or_boots=='bootss'
)
)
, mapping = aes(
x = x
, ymin = lo
, ymax = hi
)
)
+ geom_line(
data = (
to_plot #using intermediate object saved to workspace
%>% dplyr::filter(
cells_or_boots=='cells'
)
)
, mapping = aes(
x = x
, y = mean
)
)
)
Run Code Online (Sandbox Code Playgroud)
是否有类似dplyr::cur_data()ggplot2 的东西可以实现类似的功能:
(
#...
# long chain
# ...
%>% ggplot()
+ geom_ribbon(
data = (
ggplot_cur_data() #place for hoped-for dplyr::cur_data() equivalent
%>% dplyr::filter(
cells_or_boots=='boots'
)
)
, mapping = aes(
x = x
, ymin = lo
, ymax = hi
)
)
+ geom_line(
data = (
ggplot_cur_data() #place for hoped-for dplyr::cur_data() equivalent
%>% dplyr::filter(
cells_or_boots=='cells'
)
)
, mapping = aes(
x = x
, y = mean
)
)
)
Run Code Online (Sandbox Code Playgroud)
?
bou*_*all 10
我们可以将函数传递给datageom 中的参数:
# suppose you have your longer pipeline here
mtcars %>%
ggplot()+
geom_point(
aes(wt, mpg),
data = ~ filter(.x, cyl == 6),
colour = "red"
) +
geom_point(
aes(wt, mpg),
data = ~ filter(.x, cyl == 4),
colour = "blue"
)
Run Code Online (Sandbox Code Playgroud)
或者,您可以用来. %>% [pipeline]创建匿名函数。起始位置.是传递给 的数据的占位符ggplot2()。
mtcars %>%
ggplot()+
geom_point(
aes(wt, mpg),
data = . %>% filter(cyl == 6),
colour = "red"
) +
geom_point(
aes(wt, mpg),
data = . %>% filter(cyl == 4),
colour = "blue"
)
Run Code Online (Sandbox Code Playgroud)
来自帮助文件:
将使用单个参数(绘图数据)调用函数。返回值必须是一个data.frame,并将用作图层数据。可以根据公式创建函数(例如~ head(.x, 10))。
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |