全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 33524|回复: 20

[Windows VPS] 萌新求助个chartjs做图表的问题

[复制链接]
发表于 2017-6-25 07:28:54 | 显示全部楼层 |阅读模式
100金钱
本帖最后由 Diss 于 2017-6-25 21:04 编辑

现有个每天日期作为数据名的log是这样的格式,每分钟都会有数据写入
2017.06.15_12:24:55 3046 9
2017.06.15_12:25:25 3017 9
2017.06.15_12:25:55 3003 9
2017.06.15_12:26:26 3039 9
2017.06.15_12:26:56 3078 9
2017.06.15_12:27:26 3343 10
2017.06.15_12:27:56 3272 10
2017.06.15_12:28:26 3260 10
2017.06.15_12:28:57 3406 10
2017.06.15_12:29:27 3744 11
2017.06.15_12:29:57 4031 12
2017.06.15_12:30:27 4201 13
2017.06.15_12:30:57 4222 13
2017.06.15_12:31:28 4036 12
2017.06.15_12:31:58 3893 12
2017.06.15_12:32:28 3823 11
2017.06.15_12:32:58 3806 11
2017.06.15_12:33:28 4843 14
2017.06.15_12:33:59 4782 14
2017.06.15_12:34:29 4517 13
...
...
...

想截取最新的十行里第一列和第二列的数据制作数据在chartjs里做图表,请问各位大大怎么操作呢?

最佳答案

查看完整内容

完整的代码,全部复制到html文件里运行
发表于 2017-6-25 07:28:55 | 显示全部楼层
Diss 发表于 2017-6-26 10:03
求大大再指教一下吧,学会了送你个1024邀请码

完整的代码,全部复制到html文件里运行
  1. <!DOCTYPE html>
  2. <html>

  3. <head>
  4.   <meta charset="utf-8">
  5. </head>

  6. <body>
  7.   <canvas id="myChart" width="400" height="400"></canvas>
  8.   <script src="https://cdn.bootcss.com/Chart.js/2.6.0/Chart.bundle.min.js"></script>
  9.   <script type="text/javascript">
  10.   var rawData = `2017.06.15_12:24:55 3046 9
  11. 2017.06.15_12:25:25 3017 9
  12. 2017.06.15_12:25:55 3003 9
  13. 2017.06.15_12:26:26 3039 9
  14. 2017.06.15_12:26:56 3078 9
  15. 2017.06.15_12:27:26 3343 10
  16. 2017.06.15_12:27:56 3272 10
  17. 2017.06.15_12:28:26 3260 10
  18. 2017.06.15_12:28:57 3406 10
  19. 2017.06.15_12:29:27 3744 11
  20. 2017.06.15_12:29:57 4031 12
  21. 2017.06.15_12:30:27 4201 13
  22. 2017.06.15_12:30:57 4222 13
  23. 2017.06.15_12:31:28 4036 12
  24. 2017.06.15_12:31:58 3893 12
  25. 2017.06.15_12:32:28 3823 11
  26. 2017.06.15_12:32:58 3806 11
  27. 2017.06.15_12:33:28 4843 14
  28. 2017.06.15_12:33:59 4782 14
  29. 2017.06.15_12:34:29 4517 13`;

  30.   var labels = [];
  31.   var datas = [];
  32.   rawData.split("\n").forEach(function(value, key) {
  33.     var arr = value.split(' ');
  34.     labels.push(arr[0]);
  35.     datas.push(arr[1]);
  36.     if (key > 10) {
  37.       return;
  38.     }
  39.   });

  40.   var config = {
  41.     type: 'line',
  42.     data: {
  43.       labels: labels,
  44.       datasets: [{
  45.         label: "My First dataset",
  46.         backgroundColor: 'rgb(255, 99, 132)',
  47.         borderColor: 'rgb(255, 99, 132)',
  48.         data: datas,
  49.         fill: false,
  50.       }]
  51.     },
  52.     options: {
  53.       responsive: true,
  54.       title: {
  55.         display: true,
  56.         text: 'Chart.js Line Chart'
  57.       },
  58.       tooltips: {
  59.         mode: 'index',
  60.         intersect: false,
  61.       },
  62.       hover: {
  63.         mode: 'nearest',
  64.         intersect: true
  65.       },
  66.       scales: {
  67.         xAxes: [{
  68.           display: true,
  69.           scaleLabel: {
  70.             display: true,
  71.             labelString: 'Month'
  72.           }
  73.         }],
  74.         yAxes: [{
  75.           display: true,
  76.           scaleLabel: {
  77.             display: true,
  78.             labelString: 'Value'
  79.           }
  80.         }]
  81.       }
  82.     }
  83.   };
  84.   
  85.   var ctx = document.getElementById("myChart").getContext("2d");
  86.   var myNewChart = new Chart(ctx, config);
  87.   </script>
  88. </body>

  89. </html>
复制代码
 楼主| 发表于 2017-6-25 10:39:39 | 显示全部楼层
没有大大帮忙吗?
发表于 2017-6-25 12:22:31 来自手机 | 显示全部楼层
用换行符分割为数组,循环出来
 楼主| 发表于 2017-6-25 12:53:09 | 显示全部楼层
fgpgy 发表于 2017-6-25 12:22
用换行符分割为数组,循环出来

大大求代码
发表于 2017-6-25 13:03:01 | 显示全部楼层
php么?
 楼主| 发表于 2017-6-25 13:28:02 | 显示全部楼层

php python啥都可以只要能搞定
 楼主| 发表于 2017-6-25 21:04:57 | 显示全部楼层
晚上人多看看,再来顶顶
发表于 2017-6-25 21:30:45 | 显示全部楼层
直接用js就行了,labels是横坐标数组,datas是具体的数据
  1. var rawData = `2017.06.15_12:24:55 3046 9
  2. 2017.06.15_12:25:25 3017 9
  3. 2017.06.15_12:25:55 3003 9
  4. 2017.06.15_12:26:26 3039 9
  5. 2017.06.15_12:26:56 3078 9
  6. 2017.06.15_12:27:26 3343 10
  7. 2017.06.15_12:27:56 3272 10
  8. 2017.06.15_12:28:26 3260 10
  9. 2017.06.15_12:28:57 3406 10
  10. 2017.06.15_12:29:27 3744 11
  11. 2017.06.15_12:29:57 4031 12
  12. 2017.06.15_12:30:27 4201 13
  13. 2017.06.15_12:30:57 4222 13
  14. 2017.06.15_12:31:28 4036 12
  15. 2017.06.15_12:31:58 3893 12
  16. 2017.06.15_12:32:28 3823 11
  17. 2017.06.15_12:32:58 3806 11
  18. 2017.06.15_12:33:28 4843 14
  19. 2017.06.15_12:33:59 4782 14
  20. 2017.06.15_12:34:29 4517 13`;

  21. var labels = [];
  22. var datas = [];
  23. rawData.split("\n").forEach(function(value, key) {
  24.         var arr = value.split(' ');
  25.         labels.push(arr[0]);
  26.         datas.push(arr[1]);
  27.         if (key > 10) {
  28.                 return;
  29.         }
  30. });
复制代码
 楼主| 发表于 2017-6-26 09:47:34 | 显示全部楼层
南小鸟 发表于 2017-6-25 21:30
直接用js就行了,labels是横坐标数组,datas是具体的数据

这段代码放到html里是空白啊。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-3 07:12 , Processed in 0.065308 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表