如何在电子应用程序中配置Chart.js?

hrirmatl  于 2022-11-06  发布在  Chart.js
关注(0)|答案(3)|浏览(249)

我对电子是新手,所以我正在学习基本的结构。
所以,我想在我的电子应用程序中实现chart.js。问题是:在我的主页上,图表只是一个空白空间...但是在html检查器中看一看,我可以看到创建的画布。
我已经做了什么:
1.我已经安装了带有npm install chart.js --save的chart.js,我们可以在官方的chart.js文档(https://www.chartjs.org/docs/latest/getting-started/installation.html)中找到它。
我的感觉告诉我,我在调用图表库或类似的东西时做错了什么。我的代码如下:

  1. <canvas id="myChart"></canvas>
  2. <script>
  3. const { chart } = require('electron-chartjs');
  4. var ctx = document.getElementById('myChart').getContext('2d');
  5. var chart = new Chart(ctx, {
  6. // The type of chart we want to create
  7. type: 'line',
  8. // The data for our dataset
  9. data: {
  10. labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  11. datasets: [{
  12. label: 'My First dataset',
  13. backgroundColor: 'rgb(255, 99, 132)',
  14. borderColor: 'rgb(255, 99, 132)',
  15. data: [0, 10, 5, 2, 20, 30, 45]
  16. }]
  17. },
  18. // Configuration options go here
  19. options: {}
  20. });
  21. </script>

正如你所看到的,我使用的是官方的例子。唯一的增加是const { chart } = require('electron-chartjs');。所以,我认为我做错了什么或者忽略了一些重要的步骤。

06odsfpq

06odsfpq1#

更新:
下面是新代码:

  1. <canvas id="chart"></canvas>
  2. <script>
  3. var Chart = require('chart.js');
  4. var ctx = document.getElementById('chart').getContext('2d');
  5. var chart = new Chart(ctx, {
  6. // The type of chart we want to create
  7. type: 'line',
  8. // The data for our dataset
  9. data: {
  10. labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  11. datasets: [{
  12. label: 'My First dataset',
  13. backgroundColor: 'rgb(255, 99, 132)',
  14. borderColor: 'rgb(255, 99, 132)',
  15. data: [0, 10, 5, 2, 20, 30, 45]
  16. }]
  17. },
  18. // Configuration options go here
  19. options: {}
  20. });
  21. </script>

我必须要求“chart.js”,但我要求“电子图表,js”。画布ID是错误的。

展开查看全部
z3yyvxxp

z3yyvxxp2#

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8" />
  6. <script>
  7. //**entire Chart.js library**
  8. </script>
  9. <style>
  10. </style>
  11. </head>
  12. <body>
  13. <canvas id="myChart"></canvas>
  14. <script>
  15. var data = {
  16. labels: ["January", "February", "March", "April", "May", "June", "July"],
  17. datasets: [
  18. {
  19. label: "My First dataset",
  20. fillColor: "rgba(220,220,220,0.2)",
  21. strokeColor: "rgba(220,220,220,1)",
  22. pointColor: "rgba(220,220,220,1)",
  23. pointStrokeColor: "#fff",
  24. pointHighlightFill: "#fff",
  25. pointHighlightStroke: "rgba(220,220,220,1)",
  26. data: {{chartData}}
  27. }
  28. ]
  29. };
  30. var ctx = document.getElementById("myChart").getContext("2d");
  31. var myNewChart = new Chart(ctx).Line(data);
  32. </script>
  33. </body>
  34. </html>

请注意占位符{{chartData}}。还要注意,您必须替换Chart.js文件中的实际脚本(您可以链接到该脚本文件,但这样您将需要一个提供静态文件的模块)

  1. var http = require('http');
  2. var fs = require('fs');
  3. http.createServer(function (req, response) {
  4. fs.readFile('index.html', 'utf-8', function (err, data) {
  5. response.writeHead(200, { 'Content-Type': 'text/html' });
  6. var chartData = [];
  7. for (var i = 0; i < 7; i++)
  8. chartData.push(Math.random() * 50);
  9. var result = data.replace('{{chartData}}', JSON.stringify(chartData));
  10. response.write(result);
  11. response.end();
  12. });
  13. }).listen(1337, '127.0.0.1');
  14. console.log('Server running at http://127.0.0.1:1337/');

我们只是用实际数据替换占位符。

展开查看全部
06odsfpq

06odsfpq3#

更新电子版21.2.0。
1.从npm下载chart.js模块
1.修改索引.html:
1.在 meta中添加“unsafe-inline”

  1. <meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'">

1.现在,我们可以像往常一样使用chart.js。
1.我只是不知道如何设置我的图表的自定义宽度/高度):
演示代码可从以下位置获得:https://github.com/zdzmzych/electronNoiseAnalyzer

相关问题