JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer_f1" style="height: 800px; width: 100%;"></div>
JavaScript
var f1_chart = new CanvasJS.Chart("chartContainer_f1", {
animationEnabled: true,
toolTip: {
shared: true
},
zoomEnabled: true,
zoomType: "xy",
//theme: "light2", // "light1", "light2", "dark1", "dark2"
// exportEnabled: true,
interactivityEnabled: true,
title: {
text: "Charts",
fontWeight: "normal",
fontSize: 30,
fontFamily: "calibri",
},
subtitles: [{
text: "Chart subtitle",
// fontWeight: "bold",
fontColor: "red",
fontSize: 15,
fontFamily: "calibri",
}],
axisX: [
{
interval: 3,
labelAngle: -90,
labelFontSize: 15,
crosshair: {
enabled: true,
snapToDataPoint: true
}
}],
axisY: [
{
titleFontSize: 24,
labelFontSize: 15
}],
legend: {
cursor: "pointer",
itemclick: function (e) {
//console.log("legend click: " + e.dataPointIndex);
//console.log(e);
if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
e.chart.render();
},
fontSize : 20
},
data: []
});
$.get("https://docs.google.com/spreadsheets/d/e/2PACX-1vTh4kiDqrtnJMYH0BjSHPV-XhGS68CA-NtG1yDqDp2ZVvGnrNhZqYMZa43FvkEUmpEiny6_gUsBGC4k/pub?gid=410579985&single=true&output=csv", getDataPointsFromF1CSV);
function getDataPointsFromF1CSV(csv) {
var csvLines = points = [];
csvLines = csv.split(/[\r?\n|\r|\n]+/);
for (var i = 0; i < csvLines.length; i++) {
if (csvLines[i].length > 0) {
if(i === 0){
first_line = csvLines[0].split(",");
for(var j = 1; j < first_line.length; j++)
f1_chart.options.data.push({
type: "spline",
name: first_line[j],
showInLegend: true,
dataPoints: []
});
}
else {
points = csvLines[i].split(",");
for( var k = 1; k < points.length; k++ )
...