如何将twitter/AnomalyDetection生成的异常检测图保存为600dpi的PNG?
解决AnomalyDetection包图像保存为600dpi PNG的问题
首先,你遇到的报错核心原因是用错了保存函数:save()是R中用来保存**R对象(比如数据框、模型变量)**的工具,根本不是用来导出图像的,所以你传入dpi=600这种图像参数时,R会把它们当成要保存的对象名,自然找不到p和600这两个对象。
而AnomalyDetectionTs()返回的$plot是一个ggplot2图像对象,我们需要用ggplot2包的ggsave()函数来导出它,这才是专门处理ggplot图像导出的工具。
修正后的完整代码
# 先确保加载ggplot2包(如果未安装先执行 install.packages("ggplot2")) library(ggplot2) df$date <- as.POSIXct(df$date, format = "%Y%m%d%H") df <- df[, c("date", "var1")] # 生成异常检测结果与可视化图像 anomaly_result <- AnomalyDetectionTs(df, max_anoms = 0.01, direction = "pos", plot = TRUE, e_value = T) # 提取图像对象 p <- anomaly_result$plot # 用ggsave导出600dpi的PNG ggsave(filename = "C:/Users/Administrator/Desktop/anomaly.png", plot = p, dpi = 600, width = 10, # 可选:自定义图像宽度,默认单位为英寸 height = 6) # 可选:自定义图像高度,默认单位为英寸
关键说明
ggsave()会自动根据文件名后缀判断导出格式(这里是.png),无需额外指定格式参数dpi=600参数在这里完全有效,能精准控制导出图像的分辨率- 如果导出的图像存在内容截断问题,可以通过
width和height参数调整画布大小,支持指定单位(比如width=25, unit="cm")
内容的提问来源于stack exchange,提问作者HW-Scientist
相关产品推荐
相关产品推荐

