tec*_*eek 18 javascript jquery charts chart.js
我使用chart.js画了一个折线图.对于标签和数据集,我从数据库中获取值.我是chart.js及其非常强大的库的新手,但我无法完全理解它.我想画多个水平线.就像数据集的平均值,标准偏差和最小值和最大值一样.我在stackoverflow中尝试了这个问题,但是这些都给出了错误,或者可能是我无法理解工作.这是我的chart.js代码
function display_graph(id, label, data) {
var ctx = document.getElementById(id);
var data = {
labels: data.labels,
datasets: [
{
label: label,
fill: false,
lineTension: 0.1,
backgroundColor: "rgba(75,192,192,0.4)",
borderColor: "rgba(75,192,192,1)",
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderWidth: 1,
borderJoinStyle: 'miter',
pointBorderColor: "rgba(75,192,192,1)",
pointBackgroundColor: "#fff",
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: "rgba(75,192,192,1)",
pointHoverBorderColor: "rgba(220,220,220,1)",
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
data: data.assay_value,
spanGaps: false
}
]
};
//options
var options = {
responsive: true,
title: {
display: true,
position: "top",
text: label,
fontSize: 18,
fontColor: "#111"
},
legend: {
display: true,
position: "bottom",
labels: {
fontColor: "#333",
fontSize: 16
}
}
};
var Blanks_Chart=null;
Blanks_Chart = new Chart(ctx, {
type: 'line',
data: data,
options: options
});}
Run Code Online (Sandbox Code Playgroud)
jor*_*lis 32
您可以使用chart.js注释插件轻松地在图表上绘制线条,而不必手动处理画布中的渲染像素(旧方法会给您带来错误).请注意,该插件由chart.js与同一团队创建/支持,并在chart.js文档中提及.
这是一个示例代码库,演示如何在图表上创建一条线.
添加插件后,只需annotation在图表配置中设置属性即可.这是一个例子.
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["January", "February"],
datasets: [{
label: 'Dataset 1',
borderColor: window.chartColors.blue,
borderWidth: 2,
fill: false,
data: [2, 10]
}]
},
options: {
responsive: true,
title: {
display: true,
text: 'Chart.js Draw Line On Chart'
},
tooltips: {
mode: 'index',
intersect: true
},
annotation: {
annotations: [{
type: 'line',
mode: 'horizontal',
scaleID: 'y-axis-0',
value: 5,
borderColor: 'rgb(75, 192, 192)',
borderWidth: 4,
label: {
enabled: false,
content: 'Test label'
}
}]
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果您正在使用NPM包chartjs-plugin-annotation.js,重要的事情 - 您可能会忘记,是注册插件。
所以首先你安装了 npm 包(这里是React):
npm i react-chartjs-2 (depends on your framework)
npm i chartjs-plugin-annotation (always required)
Run Code Online (Sandbox Code Playgroud)
选项 1:全局插件注册
import { Line } from 'react-chartjs-2';
import Chart from 'chart.js';
import * as ChartAnnotation from 'chartjs-plugin-annotation';
Chart.plugins.register([ChartAnnotation]); // Global
// ...
render() {
return (
<Line data={chartData} options={chartOpts} />
)
}
Run Code Online (Sandbox Code Playgroud)
选项 2:每个图表插件注册
import { Line } from 'react-chartjs-2';
import * as ChartAnnotation from 'chartjs-plugin-annotation';
// ...
render() {
return (
{/* per chart */}
<Line data={chartData} options={chartOpts} plugins={[ChartAnnotation]} />
)
}
Run Code Online (Sandbox Code Playgroud)
chartData相当于data: {部分和chartOptsto options: {from jordanwillis answer。有关更多信息,请参阅此github 帖子。
chart.js还有许多其他插件可用。
小智 5
如果要绘制阈值线,最简单的方法是使用混合折线图。
注意:制作一个填充阈值的数组,长度应与您的数据集相同。
var datasets = [1, 2, 3];
var ctx = document.getElementById('chart').getContext('2d');
var thresholdValue = 2;
var thresholdHighArray = new Array(datasets.length).fill(thresholdValue);
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: [],
datasets: [
{datasets}, thresholdHighArray]
},
options: {
responsive: true,
legend: {
position: 'bottom',
},
scales: {
xAxes: [{
display: true,
scaleLabel: {
display: true,
labelString: 'Readings'
}
}],
yAxes: [{
display: true,
scaleLabel: {
display: true,
labelString: 'Reading ( °C )'
}
}]
},
annotation: {
annotations: [
{
type: "line",
mode: "vertical",
scaleID: "x-axis-0",
borderColor: "red",
label: {
content: "",
enabled: true,
position: "top"
}
}
]
}
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24413 次 |
| 最近记录: |