首页 > 解决方案 > 更改绘图的域会使 y 轴值的渲染变形

问题描述

我正在创建一个图,D3.js根据分析类型更改 y 轴域的计算方式。例如 :

 if (this.analysisType === 'REGRESSION'  ) {
      this.chartProps.y.domain(
        d3.extent(this.plotData, (d: any) => {
        return d.yb ;
      }));
    }
 if (this.analysisType === 'CLASSIFICATION' || this.analysisType === 'SURVIVAL') {
    this.chartProps.y.domain([0, 1]);
 }

我正在使用以下函数渲染一条线和一个区域:

// Define the main line function
const valueline = d3.line<any>()
.x( (d) => {
  return vm.chartProps.x(d.x);
})
.y( (d) => {
  return vm.chartProps.y(d.y);
});

// Define the area for the confidence intervals function
const confidenceArea = d3.area<any>()
.x( (d) => {
  return vm.chartProps.x(d.x);
})
.y0( (d) => {
  return vm.chartProps.y(d.yt);
})
.y1( (d) => {
  return vm.chartProps.y(d.yb);
});

现在的问题是,虽然在分类和生存中,绘图按预期呈现,但在回归情况下,由于某种原因,y 值超出了 y 轴。

^ 这是一个分类 这是正常的

这里 ^ 是一个回归 在此处输入图像描述

我想知道为什么第二个图的 y 值超过 y 轴。

标签: javascriptangulard3.js

解决方案


推荐阅读