我可以自由设置秤比x和y其它美学(例如尺寸)使用facet_grid时?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以自由设置秤比x和y其它美学(例如尺寸)使用facet_grid时?相关的知识,希望对你有一定的参考价值。
facet_grid和facet_wrap有鳞参数,其据我知道允许被绘制每个小区来调整x和/或y轴的数据的规模。因为根据ggplot x和y的语法有很多美学之中只有两个,并有一个规模为每个审美,我想这将是合理的做法是让每个审美自由的选择权,但到目前为止,我没有发现一个办法做到这一点。
我试图将其设置在特定的大小,因为有时一个变量生活在一个不同的顺序根据我使用了小群的大小,并且具有相同规模的每一组块眼看期限内向可能性基变异。
重复的例子:
set.seed(1)
x <- runif(20,0,1)
y <- runif(20,0,1)
groups <- c(rep('small', 10), rep('big', 10))
size_small <- runif(10,0,1)
size_big <- runif(10,0,1) * 1000
df <- data.frame(x, y, groups, sizes = c(size_small, size_big))
而对于绘图辅助功能:
basic_plot <- function(df) ggplot(df) +
geom_point(aes(x, y, size = sizes, color = groups)) +
scale_color_manual(values = c('big' = 'red', 'small' = 'blue')) +
coord_cartesian(xlim=c(0,1), ylim=c(0,1))
如果我我们绘制的数据是,我们得到如下:
basic_plot(df)
蓝点都比较小,但我们没有什么可以做的。如果再加上小:
basic_plot(df) +
facet_grid(~groups, scales = 'free')
蓝点继续成为小。不过,我想利用我正在将数据在两个事实的优点,并允许大小规模调整到每个小区的数据。我想有像下面这样:
plot_big <- basic_plot(df[df$groups == 'big',])
plot_small <- basic_plot(df[df$groups == 'small',])
grid.arrange(plot_big, plot_small, ncol = 2)
是否可以不诉诸这种微观的,或大小类似下面的手动缩放做了什么?
df %>%
group_by(groups) %>%
mutate(maximo = max(sizes),
sizes = scale(sizes, center = F)) %>%
basic_plot() +
facet_grid(~groups)
我可以设法做这些事情,我只是想看看我绝不错过另一个选项,或者如果我误解显卡的语法。
感谢您的时间!
答案
如前所述,原创情节美学保持通话facet_wrap
时。由于需要分组图表,考虑base::by
(该子集数据帧功能)包裹在do.call
:
do.call(grid.arrange,
args=list(grobs=by(df, df$groups, basic_plot),
ncol=2,
top="Grouped Point Plots"))
如果您需要共享一个传奇,我一直使用从@Steven Lockton's answer这个包装
do.call(grid_arrange_shared_legend, by(df, df$groups, basic_plot))
以上是关于我可以自由设置秤比x和y其它美学(例如尺寸)使用facet_grid时?的主要内容,如果未能解决你的问题,请参考以下文章