gpt4 book ai didi

r - 摆脱R中ggplot2的geom_label的pdf输出中的边框

转载 作者:行者123 更新时间:2023-12-04 11:08:04 25 4
gpt4 key购买 nike

我试图在输出到 pdf 时摆脱由 geom_label 创建的边界。设置 lable.size = 0似乎在输出到 png 或仅在 R session 的绘图窗口中工作时,但当输出到 pdf 时,边框仍然存在。我喜欢 geom_label 而不是 geom_text 作为背景,当绘图上有线条时更容易阅读。由于我对情节的处理,后者对我来说更容易获得 pdf 输出,所以如果有人知道如何摆脱边界那会很棒。

我目前在 Mac OS Sierra 上使用 ggplot 2.2.1 和 R 3.3.3。下面是一些示例代码。

require(ggplot2)
#no border
ggplot(data.frame(nums = 1:10), aes(x =nums, y = nums) ) +
geom_point() +
geom_label(label = "italic(R) ^ 2 == .87", label.size = 0, x = 2, y = 8, vjust = "inward", hjust = "inward", parse = T) +
theme_bw()


pdf("testPlot.pdf")
#border appears in pdf
print(ggplot(data.frame(nums = 1:10), aes(x =nums, y = nums) ) +
geom_point() +
geom_label(label = "italic(R) ^ 2 == .87", label.size = 0, x = 2, y = 8, vjust = "inward", hjust = "inward", parse = T) +
theme_bw())
dev.off()


png("testPlot.png")
#no border with png
print(ggplot(data.frame(nums = 1:10), aes(x =nums, y = nums) ) +
geom_point() +
geom_label(label = "italic(R) ^ 2 == .87", label.size = 0, x = 2, y = 8, vjust = "inward", hjust = "inward", parse = T) +
theme_bw())
dev.off()

最佳答案

编辑 : 我查看了 ggplot2 的源代码它实际上是一个 grid问题而不是 ggplot2 .它看起来像 grid覆盖 lwd因为某些原因。例如运行下面的代码,我们看到即使我们指定 lwd = 0 仍然有一个线宽.

library(grid)
grid.newpage();grid.draw(roundrectGrob(gp = gpar(lwd = 0)))

看起来您需要指定 lwd = NA .例如,这没有边框: grid.newpage();grid.draw(roundrectGrob(gp = gpar(lwd = NA)))
话虽如此,如果您更改 ggplot,它应该可以工作(没有警告消息)。代码:
ggplot(data.frame(nums = 1:10), aes(x =nums, y = nums) ) +
geom_point() +
geom_label(label = "italic(R) ^ 2 == .87", label.size = NA, x = 2, y = 8, vjust = "inward", hjust = "inward", parse = T) +
theme_bw()

enter image description here

关于r - 摆脱R中ggplot2的geom_label的pdf输出中的边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43417514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com