我想在 Windows 上将绘图
ggsave
放入剪贴板,而无需离开 RStudio。 基本 R 图形也有类似的问题,但我想使用 ggplot
+ggsave
。
绘图操作示例:
library(tidyverse)
{
ggplot(data = mtcars, aes(y = mpg, x = wt)) + geom_point()
} %>%
ggsave("plot.png", .)
当然,在文件资源管理器中导航到工作目录/plot.png,右键单击该文件并复制它并不难,但这需要额外的点击和时间。
一种可能的策略可能是尝试随后通过
system()
调用复制到剪贴板,例如:
library(tidyverse)
{
ggplot(data = mtcars, aes(y = mpg, x = wt)) + geom_point()
} %>%
ggsave("plot.png", .) %>%
{system( # windows command here)}
但我无法找到正确的Windows命令,至少没有下载其他实用程序。既然基本 R 的
savePlot()
能够保存到剪贴板中,那么应该有一些方法可以做到这一点,对吗?
解决方案取决于平台(Windows、Mac、Linux)。对于 Windows,您可以使用 dpashouwer/gg_to_clipboard:
的代码library(tidyverse)
gg_to_clipboard <- function(plot = last_plot(), width = 7, height = 5, pointsize = 12){
win.graph(width = width, height = height, pointsize = pointsize)
plot %>% print()
savePlot("clipboard", type = "wmf")
dev.off()
}
{ggplot(data = mtcars, aes(y = mpg, x = wt)) + geom_point()} %>%
gg_to_clipboard()
对于 R 基础图(不是 ggplot2),请参阅 这个答案:
windows(width = 7, height = 5, pointsize = 12)
plot(mtcars$wt, mtcars$mpg)
savePlot("clipboard")
dev.off()