问题描述
这是我准备的代码作为示例。一切都很好,直到我运行 ggsave
。错误是关于 $
运算符,这很令人困惑。我见过很多人在不同情况下都有类似的错误信息。是我的错还是内部 R 错误?
library(tidyverse)
xx <- seq(0,2,0.01); yy <- seq(0,0.02); zz <- seq(0,0.04)
dat <- data.frame(
times = c(xx,yy,zz),val = c(sin(xx),sin(yy)+rnorm(length(yy),sd=0.2),sin(zz)+rnorm(length(zz),sd=0.3)),method = c(rep("A",length(xx)),rep("B",length(yy)),rep("C",length(zz)))
)
fig <- ggplot(dat) +
geom_line(aes(x = times,y = val,col = method,linetype = method)) +
theme_minimal() +
scale_color_manual(values = c("#29BDCE","#ED8534","#625559")) +
scale_linetype_manual(values=c("solid","longdash","dashed")) +
theme(legend.title = element_blank(),legend.position = "none")
ggsave(fig,"D:/ResearchesAndProjects/2021_2_ODEadditive/code-ode-additive/examples/plots/test.png",device = "png",type ="cairo")
#> Saving 7 x 5 in image
#> Error: $ operator is invalid for atomic vectors
Created on 2021-07-01 by the reprex package (v2.0.0)
解决方法
from ?ggsave
第一个参数是文件名,而第二个参数是绘图。试试 -
ggsave("D:/ResearchesAndProjects/2021_2_ODEadditive/code-ode-additive/examples/plots/test.png",fig,device = "png",type ="cairo")