如何动态更改X和Y轴的起始位置?

时间:2018-08-02 19:17:37

标签: javascript d3.js c3.js

我有一个这样的c3折线图设置。

var chart = c3.generate({
    bindto: "#chart",
    data: {
        url: dataFile,
        x: "year"
    }
});

dataFile是一个如下所示的CSV文件。

year, data1
1990, 10
1992, 20,
1993, 30

以此类推...

在不更改数据源的情况下,如何使X轴从1992年(或我选择的任何其他年份)开始,如何使Y轴从1992年的data1值开始-在这种情况下为20?

1 个答案:

答案 0 :(得分:0)

您可以使用轴配置-> https://c3js.org/reference.html#axis-x-max

来设置轴的范围。

但是根据数据的内容更新它涉及更多,但这是->

http://jsfiddle.net/jaw2rdes/3/

具体地说,在oninit配置函数中,我们可以访问数据并使用它来设置所需的轴分钟数

oninit: function () {
  setTimeout(function () {
      var xval = 1991;
      var matchSeries = 'data1';
      var index = (chart.x()[matchSeries].indexOf(xval));
      if (index >= 0) {
         var yval = chart.data.values(matchSeries)[index];
         chart.axis.min({
              x: xval,
              y: yval,
          });
        }
   }, 0);
}

但是,请记住这一点 a)在开始时制作动画(尽管可以将其关闭) b)不会删除任何数据点,它们只是隐藏在显示轴的左/底