gpt4 book ai didi

javascript - Chart.js — 绘制任意垂直线

转载 作者:IT王子 更新时间:2023-10-29 02:58:12 30 4
gpt4 key购买 nike

如何使用 Chart.js 在 x 轴上的特定点绘制垂直线?

特别是,我想在折线图上画一条线来指示当前日期。这是图表的模型: http://i.stack.imgur.com/VQDWR.png

enter image description here

最佳答案

更新 - 此答案适用于 Chart.js 1.x,如果您正在寻找 2.x 答案,请查看评论和其他答案。

您扩展折线图并在绘制函数中包含绘制线条的逻辑。


预览

enter image description here


HTML

<div>
<canvas id="LineWithLine" width="600" height="400"></canvas>
</div>

脚本

var data = {
labels: ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"],
datasets: [{
data: [12, 3, 2, 1, 8, 8, 2, 2, 3, 5, 7, 1]
}]
};

var ctx = document.getElementById("LineWithLine").getContext("2d");

Chart.types.Line.extend({
name: "LineWithLine",
draw: function () {
Chart.types.Line.prototype.draw.apply(this, arguments);

var point = this.datasets[0].points[this.options.lineAtIndex]
var scale = this.scale

// draw line
this.chart.ctx.beginPath();
this.chart.ctx.moveTo(point.x, scale.startPoint + 24);
this.chart.ctx.strokeStyle = '#ff0000';
this.chart.ctx.lineTo(point.x, scale.endPoint);
this.chart.ctx.stroke();

// write TODAY
this.chart.ctx.textAlign = 'center';
this.chart.ctx.fillText("TODAY", point.x, scale.startPoint + 12);
}
});

new Chart(ctx).LineWithLine(data, {
datasetFill : false,
lineAtIndex: 2
});

选项属性 lineAtIndex 控制画线的点。

fiddle - http://jsfiddle.net/dbyze2ga/14/

关于javascript - Chart.js — 绘制任意垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256695/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com