一、成果展示
二、代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.6.0/chart.min.js" integrity="sha512-GMGzUEevhWh8Tc/njS0bDpwgxdCJLQBWG3Z2Ct+JGOpVnEmjvNx6ts4v6A2XJf1HOrtOsfhv3hBKpK9kE5z8AQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> </head> <body> <!-- <canvas id ="chart" width = "400" height="400"></canvas> --> <canvas id="myChart" width="200" height="200"></canvas> <script> const xlabels = []; const ytemps = []; chatIt() async function chatIt() { await getData(); const ctx = document.getElementById('myChart').getContext('2d'); const myChart = new Chart(ctx, { type: 'line', data: { labels: xlabels, datasets: [{ label: '# Global Average Temprature', data: ytemps, fill:false, backgroundColor: [ 'rgba(255, 99, 132, 0.2)', ], borderColor: [ 'rgba(255, 99, 132, 1)', ], borderWidth: 1 }] }, }); } async function getData(){ const response = await fetch('ZonAnn.Ts+dSST.csv'); const data = await response.text(); // console.log(data); const table = data.split('\n').slice(1); table.forEach(row=>{ const columns = row.split(','); const year = columns[0]; xlabels.push(year); const temp = columns[1]; ytemps.push(parseFloat(temp)+14); console.log(year,temp); }) } </script> </body> </html>
参考:https://www.youtube.com/watch?v=5-ptp9tRApM&list=PLRqwX-V7Uu6YxDKpFzf_2D84p0cyk4T7X&index=5