You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:36:59