【发布时间】:2020-12-15 15:50:06
【问题描述】:
我正在尝试使用 Charts.js 在画布图中绘制风速。数据(风速和风向)来自 JSON URL。代码一切正常,情节如下所示:
我可以通过使用 Charts.js 中的插件、formatter 和 rotation 函数来添加箭头,但我想做的是让箭头根据风向角度旋转来自 JSON。
JSON 文件的格式如下所示:
到目前为止,部分代码如下所示:
Current = Date.now();
$.getJSON("https://api.openweathermap.org/data/2.5/onecall?lat={LAT}&lon={LONG}&dt=" + Current + "&appid={MY API CODE}", function(data) {
$.each(data.hourly, function(key, value) {
var d = new Date(value.dt * 1000);
minutes = "0" + d.getMinutes()
var date_corrected = d.getFullYear() + "-" + [d.getMonth() + 1] + '-' + d.getDate() + ' ' + [d.getHours()] + ':' + minutes.substr(-2);
dataOpen1.push({
x: date_corrected,
y: value.wind_speed
});
dataOpen2.push({
x: date_corrected,
y: value.wind_deg
});
});
var WIND = new Chart(vant, {
plugins: [ChartDataLabels],
type: 'line',
data: {
labels: dataOpen1.map(x => x.x),
datasets: [{
data: dataOpen1.map(y => y.y),
label: 'Viteza vantului ',
borderColor: "#3e95cd",
fill: true
}, ]
},
options: {
plugins: {
datalabels: {
backgroundColor: 'white',
borderRadius: 20,
borderWidth: 3,
borderDashOffset: 20,
color: 'black',
font: {
size: 18
},
formatter: function(value) {
return '\u27a3'
},
rotation: function(ctx) {
return ctx.dataset.data[ctx.dataIndex] * 25;
},
padding: 0
}
},
});
});
所以我想从dataOpen2(风向)中获取值,并用它来设置每个数据集的箭头旋转角度。我知道代码必须在这里:
rotation:
function(ctx) {
.......
return ctx.dataset.data[ctx.dataIndex] * 25;
},
但我真的不知道该怎么做。
【问题讨论】:
标签: javascript html jquery charts chart.js