在R中创建动画绘图时unique()函数报错问题求助
解决ggplot动态GIF绘图的函数应用错误问题
嘿,这个错误其实是循环语法写错啦!你在for循环里把unique(Complete_RD_ClaimData$ReportSubmitted)后面直接跟了(Complete_RD_ClaimData$ReportSubmitted == i),这相当于把unique()返回的日期向量当成函数来调用了,R肯定会报错说“尝试应用非函数”。
下面是修正后的完整代码,同时我也调整了绘图逻辑,让它更贴合你“查看ReportFee分布密度”的需求:
saveGIF({ # 遍历每个唯一的ReportSubmitted日期 for(i in unique(Complete_RD_ClaimData$ReportSubmitted)){ # 筛选对应日期的数据 data <- subset(Complete_RD_ClaimData, ReportSubmitted == i) # 绘制密度分布图,用geom_density更符合你的需求 p <- ggplot(data = data, aes(x = ReportFee, fill = Auditor)) + geom_density(alpha = 0.7) + # alpha参数让不同Auditor的密度层更清晰 coord_flip() + ggtitle(paste("Report Fee Distribution -", i)) # 标题加上日期更直观 print(p) } }, movie.name = "reportfee.gif", interval = 0.1)
额外说明:
- 原代码里的
geom_point()搭配y = n()其实没法展示密度分布,换成geom_density()才是正确的选择。 - 如果你更想展示不同Auditor的ReportFee计数分布,可以把绘图部分换成直方图:
p <- ggplot(data = data, aes(x = ReportFee, fill = Auditor)) + geom_histogram(binwidth = 50, alpha = 0.7) + # 根据你的数据调整binwidth的大小 coord_flip() + ggtitle(paste("Report Fee Count -", i))
内容的提问来源于stack exchange,提问作者Polly
相关产品推荐
相关产品推荐

