ggplot2/knitr问题:geom_col在PDF中显示分隔线,RStudio/HTML中无此现象
解决ggplot2 geom_col在PDF编译中出现灰色分隔线的问题
这个问题其实是ggplot2在PDF输出设备上的渲染特性导致的——当geom_col堆叠多个观测值时,PDF引擎会默认渲染每个独立矩形的边界,而HTML或RStudio的绘图窗口用的是不同的渲染逻辑,所以不会显示这些恼人的灰色线条。这里有几个简单的解决办法:
直接移除边框(最推荐):给
geom_col添加color = NA参数,彻底关闭边框渲染,不管输出什么格式都能保持实心效果:library(ggplot2) ggplot(data = midwest) + geom_col(mapping = aes(x = state, y = poptotal), color = NA)让边框与填充色一致:如果你之后可能需要保留边框(比如后续调整可视化细节),可以把
color设置成和柱子填充色相同的颜色,这样边框就会和柱子融为一体,视觉上就是实心的:# 这里用默认填充色举例,你也可以换成自定义的填充色 ggplot(data = midwest) + geom_col(mapping = aes(x = state, y = poptotal), color = "grey30")调整PDF渲染参数(备选):如果上面的方法都不生效,你可以在R Markdown的代码块中指定PDF设备的渲染参数,关闭可能导致边界显示的特性。在代码块选项里加上
dev.args = list(pdf = list(useDingbats = FALSE))即可:library(ggplot2) ggplot(data = midwest) + geom_col(mapping = aes(x = state, y = poptotal))不过这个方法不如前两种直接,一般优先用前两种方案。
内容的提问来源于stack exchange,提问作者J Ross
相关产品推荐
相关产品推荐

