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

如何用rAmCharts绘制带拟合值上下置信区间的散点图?

我帮你补全并优化了rAmCharts的实现代码,直接运行就能得到带趋势线和预测置信区间的散点图。先看完整的可运行示例:

完整代码

# 加载依赖包
library(rAmCharts)

# 生成数据并计算预测区间
set.seed(123) # 设置种子保证结果可复现
Data = data.frame(ax = rnorm(50), ay = rnorm(50))
# 拟合无截距线性模型并计算预测区间
pred_results = predict(lm(ay ~ ax - 1, data = Data), 
                       newdata = Data, 
                       interval = 'prediction')
Data = cbind(Data, pred_results)
# 按X轴排序,保证线条绘制连贯
Data = Data[order(Data$ax), , drop = FALSE]

# 创建并配置XY图表
amChart_Plot = amXYChart(
  dataProvider = Data,
  categoryField = "ax",
  startDuration = 0,
  theme = "light"
) %>%
  # 添加原始散点系列
  addAmSeries(
    valueField = "ay",
    type = "scatter",
    title = "原始数据",
    bullet = "circle",
    bulletSize = 6,
    lineAlpha = 0 # 散点不需要连线
  ) %>%
  # 添加趋势线(拟合值)
  addAmSeries(
    valueField = "fit",
    type = "line",
    title = "趋势线",
    lineColor = "#2E86AB",
    lineThickness = 2,
    bullet = NULL # 趋势线隐藏数据点
  ) %>%
  # 添加置信区间上限
  addAmSeries(
    valueField = "upr",
    type = "line",
    title = "置信区间上限",
    lineColor = "#F24C4C",
    lineAlpha = 0.6,
    lineDashLength = 3,
    bullet = NULL
  ) %>%
  # 添加置信区间下限
  addAmSeries(
    valueField = "lwr",
    type = "line",
    title = "置信区间下限",
    lineColor = "#F24C4C",
    lineAlpha = 0.6,
    lineDashLength = 3,
    bullet = NULL
  ) %>%
  # 配置X轴
  addAxis(
    type = "value",
    position = "bottom",
    title = "X轴 (ax)",
    gridAlpha = 0.3
  ) %>%
  # 配置Y轴
  addAxis(
    type = "value",
    position = "left",
    title = "Y轴 (ay)",
    gridAlpha = 0.3
  ) %>%
  # 启用图例
  setLegend(enabled = TRUE) %>%
  # 配置共享Tooltip
  setTooltip(
    enabled = TRUE,
    shared = TRUE # 鼠标hover时显示所有系列对应值
  )

# 渲染图表
print(amChart_Plot)

关键细节说明

  • 我给数据处理加了set.seed(123),这样你每次运行的结果都一致,方便调试;同时简化了线性模型的写法,用data参数指定数据集,代码更规范。
  • 核心是通过addAmSeries分别添加四个系列:原始散点、趋势线、置信区间上下限。散点系列用scatter类型并关闭连线,趋势线和置信区间用line类型,置信区间用虚线+半透明效果和趋势线区分开。
  • 必须按X轴排序:你原来的代码已经做了这一步,这非常重要——如果数据无序,置信区间的线会变成混乱的折线,排序后才能画出平滑的区间范围。
  • 开启shared = TRUE的Tooltip,鼠标悬停时能同时看到对应X值的原始数据、拟合值和置信区间上下限,方便对比查看。

内容的提问来源于stack exchange,提问作者Bogaso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:51:06