ggpattern包wave图案失效问题排查及解决方法
解决ggpattern包wave图案不生效问题
问题现象
- 尝试用ggpattern包为ggplot2绘制的柱状图添加wave图案,图案未正常渲染,仅显示纯色填充
- ggpattern官方文档中的混合图案章节示例同样无法正常运行
原代码
library(ggplot2) library(ggpattern) ToothGrowth$dose<- factor(ToothGrowth$dose) ggplot(ToothGrowth, aes(dose)) + geom_bar_pattern(aes(fill=dose, pattern=dose, pattern_type=dose),colour='black') + theme_bw() + labs(title = "使用'stripe'和'wave'图案") + theme(legend.key.size = unit(1.5, 'cm')) + scale_pattern_manual(values=c('stripe', 'wave', 'wave')) + scale_pattern_type_manual(values=c(NA, 'triangle', 'sine'))
原输出:柱状图仅展示对应填充颜色,wave图案未显示
R环境信息
sessionInfo() #> R version 4.4.1 (2024-06-14 ucrt) #> Platform: x86_64-w64-mingw32/x64 #> Running under: Windows 10 x64 (build 19045) #> #> Matrix products: default #> #> #> locale: #> [1] LC_COLLATE=Chinese (Simplified)_China.utf8 #> [2] LC_CTYPE=Chinese (Simplified)_China.utf8 #> [3] LC_MONETARY=Chinese (Simplified)_China.utf8 #> [4] LC_NUMERIC=C #> [5] LC_TIME=Chinese (Simplified)_China.utf8 #> #> time zone: Asia/Shanghai #> tzcode source: internal #> #> attached base packages: #> [1] stats graphics grDevices utils datasets methods base #> #> loaded via a namespace (and not attached): #> [1] digest_0.6.37 fastmap_1.2.0 xfun_0.47 glue_1.7.0 #> [5] knitr_1.48 htmltools_0.5.8.1 rmarkdown_2.28 lifecycle_1.0.4 #> [9] cli_3.6.3 reprex_2.1.1 withr_3.0.1 compiler_4.4.1 #> [13] rstudioapi_0.16.0 tools_4.4.1 evaluate_0.24.0 yaml_2.3.10 #> [17] rlang_1.1.4 fs_1.6.4
解决方法
在geom_bar_pattern()函数中添加pattern_frequency = 5参数,调整图案频率,使wave图案能够正常渲染。
修正后代码
library(ggplot2) library(ggpattern) ToothGrowth$dose <- factor(ToothGrowth$dose) ggplot(ToothGrowth, aes(dose)) + geom_bar_pattern( aes( fill = dose, pattern = dose, pattern_type = dose ), pattern_frequency = 5, colour = 'black' ) + theme_bw() + labs(title = "使用'stripe'和'wave'图案") + theme(legend.key.size = unit(1.5, 'cm')) + scale_pattern_manual(values = c('stripe', 'wave', 'wave')) + scale_pattern_type_manual(values = c(NA, 'triangle', 'sine'))
预期输出:柱状图成功显示stripe条纹、triangle波形和sine波形图案,与设定一致
内容的提问来源于stack exchange,提问作者ANLIN
相关产品推荐
相关产品推荐

