ggplot2 根据因子设置 geom_point 大小
Posted
技术标签:
【中文标题】ggplot2 根据因子设置 geom_point 大小【英文标题】:ggplot2 Set geom_point Size according to a Factor 【发布时间】:2022-01-17 08:37:49 【问题描述】:我正在尝试根据一个因素设置geom_point
的大小。我知道不建议这样做,但我的数据非常不平衡(最小值为 6,而最大值大于 10,000)。
我试图使点的大小反映研究的总样本量。我将总样本量分为 6 个级别:小于 100; 100 至 500; 500 至 1,000; 1,000 至 5,000; 5,000 至 10,000;超过 10,000 个。
这是我的尝试:
rct_findings <- findings %>%
mutate(
Sample_Size_Range = case_when(
0 < Outcome_Sample_Size & Outcome_Sample_Size <= 100 ~ "0 < n <= 100",
100 < Outcome_Sample_Size & Outcome_Sample_Size <= 500 ~ "100 < n <= 500",
500 < Outcome_Sample_Size & Outcome_Sample_Size <= 1000 ~ "500 < n <= 1,000",
1000 < Outcome_Sample_Size & Outcome_Sample_Size <= 5000 ~ "1,000 < n <= 5,000",
5000 < Outcome_Sample_Size & Outcome_Sample_Size <= 10000 ~ "5,000 < n <= 10,000",
10000 < Outcome_Sample_Size ~ "10,000 < n"),
Sample_Size_Range = fct_relevel(Sample_Size_Range, c("0 < n <= 100", "100 < n <= 500", "500 < n <= 1,000", "1,000 < n <= 5,000", "5,000 < n <= 10,000", "10,000 < n")))
ggplot(rct_findings, aes(x = Effect_Size_Study, y = F_test_var_stat, size = as_factor(Sample_Size_Range))) +
geom_point()
我得到的错误信息是:
grid.Call.graphics 中的错误(C_setviewport,vp,TRUE):非有限 视口的位置和/或大小另外:警告消息:1: 不建议对离散变量使用大小。 2:删除了 16 行 包含缺失值 (geom_point)。
有人对如何解决这个问题有任何建议吗?
【问题讨论】:
我怀疑您使用因子的原因是因为您希望最小的与最大的相当,等等。您可以做的是,如果默认的大小调整方法对您来说过于极端,您可以在使用它来设置大小之前转换大小变量(例如平方根)。 欢迎来到 Stack Overflow。请make this question reproducible 包含一个纯文本格式的小型代表性数据集 - 例如dput(findings)
的输出,如果不是太大的话。
【参考方案1】:
这似乎是分箱大小比例的一个很好的用例,通过它您可以完全规避将变量设置为一个因素。
library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.1.1
# Dummy data
rct_findings <- data.frame(
Effect_Size_Study = rnorm(100),
F_test_var_stat = runif(100),
Outcome_Sample_Size = runif(100, min = 6, max = 10000)
)
ggplot(rct_findings, aes(x = Effect_Size_Study, y = F_test_var_stat)) +
geom_point(aes(size = Outcome_Sample_Size)) +
scale_size_binned_area(
limits = c(0, 10000),
breaks = c(0, 100, 500, 1000, 5000, 10000),
)
由reprex package (v2.0.1) 于 2021 年 12 月 14 日创建
【讨论】:
非常感谢您!效果很好!以上是关于ggplot2 根据因子设置 geom_point 大小的主要内容,如果未能解决你的问题,请参考以下文章
ggplot2 + geom_point + 与大小成比例的气泡(错误“离散值提供给连续比例”)
R语言ggplot2使用geom_line函数geom_point函数可视化哑铃图并对哑铃图进行排序(reorder dumbbell plot)