你能用Chart.js在折线图中做区域吗?

时间:2017-07-01 15:36:41

标签: javascript charts chart.js linechart

我希望生成一个包含“区域”的折线图(见下文),我一直在关注chart.js,但我不确定它是否可以这样做,因为我没有看到它的任何例子

这是我想要实现的一个例子:

enter image description here

我不关心不同的阴影,我在谈论图表中从上到下的绿色/红色背景颜色。

如果您可以使用chart.js执行此操作,有人可以提供示例和/或引导我获取所需的文档以实现此目的吗?

1 个答案:

答案 0 :(得分:1)

您可以使用名为 - chartjs-plugin-annotation

的ChartJS插件来实现此目的

ᴡᴏʀᴋɪɴɢᴡᴏʀᴋɪɴɢxᴀᴍᴘʟᴇ

var ctx = c.getContext('2d');
var chart = new Chart(ctx, {
   type: 'line',
   data: {
      labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
      datasets: [{
         label: 'Statistics',
         data: [3, 1, 2, 5, 4],
         backgroundColor: 'rgba(0, 119, 204, 0.2)',
         borderColor: 'rgba(0, 119, 204, 0.8)',
         borderWidth: 2,
         fill: false,
         lineTension: 0
      }]
   },
   options: {
      scales: {
         yAxes: [{
            ticks: {
               beginAtZero: true,
               stepSize: 1
            }
         }]
      },
      annotation: {
         annotations: [{
            type: 'box',
            drawTime: 'beforeDatasetsDraw',
            id: 'region-1',
            xScaleID: 'x-axis-0',
            yScaleID: 'y-axis-0',
            xMin: 'Jan',
            xMax: 'May',
            yMin: 2.5,
            yMax: 4.5,
            backgroundColor: 'rgba(200,230,201,0.5)'
         }, {
            type: 'box',
            drawTime: 'beforeDatasetsDraw',
            id: 'region-2',
            xScaleID: 'x-axis-0',
            yScaleID: 'y-axis-0',
            xMin: 'Jan',
            xMax: 'May',
            yMin: 0,
            yMax: 2,
            backgroundColor: 'rgba(255,205,210 ,0.5)'
         }]
      }
   }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.min.js"></script>
<script src="https://cdn.rawgit.com/chartjs/chartjs-plugin-annotation/master/chartjs-plugin-annotation.min.js"></script>
<canvas id="c"></canvas>