使用hrbrthemes的theme_ft_rc绘制饼图无法移除网格与坐标轴的问题
解决方案
问题核心原因是hrbrthemes系列主题对轴元素的默认配置优先级更高,且原代码中aes(x=NA)的写法会自动生成NA的轴标题,仅设置axis.text等参数无法覆盖全部残留元素。
修正后可运行代码
library(ggplot2) library(hrbrthemes) # 修正原数据的语法错误,去掉冗余的类型转换 Test <- data.frame(name = c("Hello","World"), value = c(1,1)) ggplot(Test, aes(x = 1, y = value, fill = name)) + geom_col(width = 1) + coord_polar("y", start = 0) + ggtitle("Title") + labs(caption = "Caption") + theme_ft_rc() + theme( # 清除所有轴标题 axis.title = element_blank(), # 清除所有轴文本 axis.text = element_blank(), # 清除刻度线 axis.ticks = element_blank(), # 清除刻度线预留长度,避免残留空白 axis.ticks.length = unit(0, "pt"), # 清除面板网格线 panel.grid = element_blank(), # 清除轴线条 axis.line = element_blank() )
关键修改点
- 将
aes()中的x=NA改为固定值1,从根源避免生成"NA"悬浮标签 - 新增
axis.title = element_blank()清除轴标题残留 - 新增
axis.ticks.length = unit(0, "pt")清除刻度线预留的空白位置 - 所有自定义主题配置保持在
theme_ft_rc()之后,确保不会被主题默认参数覆盖
内容的提问来源于stack exchange,提问作者miles_bytes
相关产品推荐
相关产品推荐

