对于粗化图,我比较了几个重叠组的不同比例(愚蠢的例子:男人和女人和小/高)。
默认情况下,很明显,所有 x 刻度都是均匀间隔的。
为了更清晰的可视化,男人和女人应该靠近,而远离小和高(也应该靠近)。
dat <- data.frame(value=runif(6)*10,
lab=c('1man','2woman','3small','4tall','5sick','6healthy'))
ggplot(dat, aes(x=lab, y=value)) +
geom_point(position=position_dodge(0.5),size=4) +
theme(plot.title = element_text(hjust = 0.5,size=14,face="bold"))+
theme_classic()
Run Code Online (Sandbox Code Playgroud)
我知道在 facet_wrap 和 facet_grid 周围有一些事情要做,但它会产生其他问题(例如,分组都具有相同的宽度而具有不同数量的类别。
有什么想法可以直接在图中设置分类 X 的空间吗?
我觉得应该已经有一个很好的 SO 帖子了,但找不到,所以我会抛出一个facet_grid解决方案。如果您设置scales = "free_x",则分面面板将设置彼此独立的限制,并添加space = "free_x"让这些面板根据其值占用的空间量设置其大小。为了说明,我添加了一个额外的组。
将组折叠成用于分面的类别变量(我喜欢forcats::fct_collapse)。假设您实际上不想要类别标签,我放弃了条状标签;您也可以调整面板间距。除此之外,我正在删除与特定问题无关的 ggplot 细节。
library(ggplot2)
library(dplyr)
set.seed(123)
dat <- data.frame(value=runif(7)*10,
lab=c('1man','2woman','3small','4tall','5sick','6healthy', "7chronic"))
dat2 <- dat %>%
mutate(category = forcats::fct_collapse(lab,
sex = c("1man", "2woman"),
size = c("3small", "4tall"),
health = c("5sick", "6healthy", "7chronic")))
ggplot(dat2, aes(x = lab, y = value)) +
geom_point(size = 4) +
facet_grid(cols = vars(category), scales = "free_x", space = "free_x") +
theme(panel.spacing.x = unit(1, "cm"),
strip.text.x = element_blank())
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |