如何用ggpattern实现多边形点密度不同但点尺寸一致?
解决ggpattern点状图案密度不同但点尺寸一致的问题
要实现不同多边形(柱子)内点状图案密度不同,但所有点尺寸保持一致,关键是固定点的大小并关闭spacing对元素的自动缩放,具体修改代码如下:
library(ggplot2) library(ggpattern) # 模拟示例数据(可替换为你的实际数据) df <- data.frame( trt = c("A", "B", "C"), outcome = c(2, 4, 6) ) ggplot(df, aes(trt, outcome)) + geom_col_pattern( aes(fill = trt, pattern_spacing = outcome/3), pattern = 'pch', pattern_size = 2, # 固定所有点的尺寸,数值可按需调整 pattern_scale = 1, # 禁用spacing对元素大小的自动缩放,仅控制密度 pattern_fill = "black" # 自定义点的颜色,可选 ) + theme_minimal()
参数说明:
pattern_size = 2:直接指定所有点状图案的固定尺寸,确保不同柱子里的点大小完全一致。pattern_scale = 1:默认情况下,ggpattern会根据pattern_spacing的数值自动缩放图案元素大小,设置为1可以关闭这个机制,让pattern_spacing仅控制点之间的间距(间距越小,密度越高)。pattern_spacing的映射逻辑:你可以根据需求调整映射的计算方式,比如如果需要面积越大的柱子点密度越高,可改为pattern_spacing = 1/outcome(数值越小,点越密集),灵活适配你的目标效果。
内容的提问来源于stack exchange,提问作者Gabriel De Oliveira Caetano
相关产品推荐
相关产品推荐

