R语言ggplot2 coord_polar极坐标中间孔洞无法显示问题求助
解决方法
你要实现的极坐标中间空洞是环形(甜甜圈)图效果,只需截断极坐标径向轴的中心显示区域即可,修改后代码如下:
# 先读入测试数据 df <- structure(list(name = c("g__Bradyrhizobium", "g__Bradyrhizobium", "g__Cutibacterium", "g__Cutibacterium"), primaryTumorLocation = c("Small intestine", "Urothelial tract", "Small intestine", "Urothelial tract"), absolute = c(2L, 10L, 9L, 25L), Freq = c(0.032258064516129, 0.072992700729927, 0.145161290322581, 0.182481751824818), percent = c(7.5, 16.9, 33.5, 42.2)), row.names = c(1390L, 1397L, 2470L, 2477L), class = "data.frame") # 绘图代码 library(ggplot2) ggplot(df) + geom_col(aes(x=4,y=Freq)) + coord_polar("y",start = 0,direction = 1) + # 新增这行控制径向轴范围,实现中间空洞 scale_x_continuous(limits = c(1, 5), expand = c(0,0)) + facet_grid(name~primaryTumorLocation)
参数调整说明
- 调整
scale_x_continuous中limits的第一个数值:数值越大,中间的空洞半径越大 - 调整
limits上下限的差值:差值越大,环形的厚度越大 - 可以根据需求删掉
expand = c(0,0),保留默认的径向轴边缘留白
原理说明:你原有代码的径向x轴默认从0开始显示,柱形会从极坐标中心0的位置一直延伸到x=4的位置,自然没有中间空洞。通过设置x轴显示下限大于0,就可以把中心区域的柱形截断,形成空洞效果。
内容的提问来源于stack exchange,提问作者user2300940
相关产品推荐
相关产品推荐

