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

如何调整AmCharts中负值折线图的背景颜色填充范围

如何让AmCharts的填充区域从Y轴最小值(负值底部)延伸到曲线?

当然可以实现你想要的效果!默认情况下,AmCharts的LineSeries填充区域是从曲线延伸到0值基准线,要改成从Y轴底部(这里是-10)到曲线,只需要调整系列的fillToAxis属性即可。

核心原理

LineSeries有个fillToAxis配置项,默认值是null(表示填充到0线),我们只需要将它设置为我们创建的Y轴实例,就能让填充区域从曲线延伸到该坐标轴的最小值位置(也就是你设置的-10)。

修改后的完整代码

下面是调整后的JS代码,我标注了新增的关键行:

am4core.ready(function() {
  // Themes begin
  am4core.useTheme(am4themes_animated);
  // Themes end

  // Create chart instance
  var chart = am4core.create("chartdiv", am4charts.XYChart);

  // Add data
  chart.data = [
    { "date": "2012-07-27", "value": -5 },
    { "date": "2012-07-28", "value": -6 },
    { "date": "2012-07-29", "value": -4 },
    { "date": "2012-07-30", "value": -7 },
    { "date": "2012-07-31", "value": -5 },
    { "date": "2012-08-01", "value": -3 },
    { "date": "2012-08-02", "value": -2 }
  ];

  // Create axes
  var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
  dateAxis.renderer.grid.template.location = 0;
  dateAxis.renderer.minGridDistance = 50;

  var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
  valueAxis.min = -10;
  valueAxis.max = 0;

  // Create series
  var series = chart.series.push(new am4charts.LineSeries());
  series.dataFields.valueY = "value";
  series.dataFields.dateX = "date";
  series.strokeWidth = 3;
  series.fillOpacity = 0.5;
  // 新增:设置填充区域延伸到我们定义的Y轴
  series.fillToAxis = valueAxis;

  // Add vertical scrollbar
  chart.scrollbarY = new am4core.Scrollbar();
  chart.scrollbarY.marginLeft = 0;

  // Add cursor
  chart.cursor = new am4charts.XYCursor();
  chart.cursor.behavior = "zoomY";
  chart.cursor.lineX.disabled = true;
}); // end am4core.ready()

效果说明

添加series.fillToAxis = valueAxis;这行代码后,蓝色填充区域就会从你设置的Y轴最小值(-10,图表底部)开始,向上延伸到曲线位置,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:07:44