javascript - 我正在使用 chartjs 节点画布来呈现图表,但是图表选项被忽略了
问题描述
我在节点中使用 Chart.js 和 Chart.js Node Canvas 来呈现图形,然后使用以下代码将它们保存到磁盘:
const width = 400; //px
const height = 400; //px
const { ChartJSNodeCanvas } = require('chartjs-node-canvas');
const chartCallback = (ChartJS) => {
ChartJS.defaults.global.elements.rectangle.borderWidth = 2;
};
const canvasRenderService = new ChartJSNodeCanvas({ width, height, chartCallback});
(async () => {
const configuration = {
type: 'bar',
data: {
labels: ['Ravenclaw', 'Gryffindor', 'Hufflepuff', 'Slytherin'],
datasets: [{
label: 'House Points',
data: [serverpointsarray[0], serverpointsarray[1], serverpointsarray[2], serverpointsarray[3]],
backgroundColor: [
'rgba(54, 162, 235, 0.2)',
'rgba(255, 99, 132, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)'
],
borderColor: [
'rgba(54, 162, 235, 1)',
'rgba(255, 99, 132, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)'
],
borderWidth: 1,
}]
},
options: {
scales: {
y: {
type: 'linear',
beginAtZero: true,
}
}
}
};
const imageBuffer = await canvasRenderService.renderToBuffer(configuration);
fs.writeFileSync(`./housepoints/graph.png`, imageBuffer);
})();
(serverpointsarray
先前已定义)但是,更改选项部分中的任何内容对最终呈现的图形没有影响,我查看了 Chart.js 文档并尝试使用min
,beginAtZero
和更改颜色的选项,但是无论我添加什么都不会呈现结果的差异 - 选项似乎只是被忽略了
渲染结果: y 轴不是从零开始
问题似乎不在于选项本身,因为当我在 html 中使用这个确切的图表时,浏览器会很好地呈现图表中的内容。除非它与 chartjs-nodee-canvas 略有不同?
解决方案
您正在尝试使用 chart.js 的 v3 语法,而节点画布使用 chart.js 的 v2,可以在此处找到该文档:https ://www.chartjs.org/docs/2.9.4/
推荐阅读
- python - 如何使用 OpenCV 和 Python 创建语义图
- python - Python /Pandas 使用 ibm_db 将数据帧插入 DB2 表
- c++ - 在 QWidget 内的 QGraphicsScene 内绘制
- replace - 如何使用查找和替换交换 Visual Studio Code 中的两个单词?
- git - 使用 Git 将我的生产文件与我提交的开发文件同步的正确术语是什么?
- typescript - Dialogflow & Express -- 履行
- c - 交换 C 变量
- arrays - 使用Python中的对象和键数组从json数组中获取值
- javascript - 如何让我的应用程序仅将图像 URL 记录到控制台?
- microsoft-graph-api - 未找到与请求 URI 'https://outlook.office365.com:444/profile/v1.0/users 匹配的 HTTP 资源