Fixed up chart

This commit is contained in:
Max Robinson
2021-02-10 18:09:18 -07:00
parent 382794bf3f
commit 7b19798be9
14 changed files with 318 additions and 563 deletions

View File

@@ -0,0 +1,55 @@
const FossilRecord = require("../FossilRecord");
class ChartController {
constructor(title) {
this.data = [];
this.chart = new CanvasJS.Chart("chartContainer", {
zoomEnabled: true,
title:{
text: title
},
data: this.data
});
this.chart.render();
this.data
}
setData() {
alert("Must override updateData!");
}
render() {
this.chart.render();
}
updateData() {
var r_len = FossilRecord.tick_record.length;
var newest_t = -1;
var oldest_t = 0;
if (this.data[0].dataPoints.length>0) {
newest_t = this.data[0].dataPoints[this.data[0].dataPoints.length-1].x;
newest_t = this.data[0].dataPoints[0].x;
}
if (newest_t < FossilRecord.tick_record[r_len-1]) {
this.addNewest();
}
if (oldest_t < FossilRecord.tick_record[0]) {
this.removeOldest();
}
}
addNewest() {
alert("Must override addNewest!");
}
removeOldest() {
alert("Must override addNewest!");
}
clear() {
this.data.length = 0;
this.chart.render();
}
}
module.exports = ChartController;

View File

@@ -0,0 +1,41 @@
const FossilRecord = require("../FossilRecord");
const ChartController = require("./ChartController");
class MutationChart extends ChartController {
constructor() {
super("Mutation Rate");
}
setData() {
this.clear();
this.data.push({
type: "line",
markerType: "none",
color: 'black',
showInLegend: true,
name: "pop1",
legendText: "Average Mutation Rate",
dataPoints: []
}
);
for (var i in FossilRecord.tick_record) {
var t = FossilRecord.tick_record[i];
var p = FossilRecord.av_mut_rates[i];
this.data[0].dataPoints.push({x:t, y:p});
}
// console.log(this.data)
}
addNewest() {
var i = FossilRecord.tick_record.length-1;
var t = FossilRecord.tick_record[i];
var p = FossilRecord.av_mut_rates[i];
this.data[0].dataPoints.push({x:t, y:p});
}
removeOldest() {
this.data[0].dataPoints.shift();
}
}
module.exports = MutationChart;

View File

@@ -0,0 +1,41 @@
const FossilRecord = require("../FossilRecord");
const ChartController = require("./ChartController");
class PopulationChart extends ChartController {
constructor() {
super("Population");
}
setData() {
this.clear();
this.data.push({
type: "line",
markerType: "none",
color: 'black',
showInLegend: true,
name: "pop1",
legendText: "Total Population",
dataPoints: []
}
);
for (var i in FossilRecord.tick_record) {
var t = FossilRecord.tick_record[i];
var p = FossilRecord.pop_counts[i];
this.data[0].dataPoints.push({x:t, y:p});
}
// console.log(this.data)
}
addNewest() {
var i = FossilRecord.tick_record.length-1;
var t = FossilRecord.tick_record[i];
var p = FossilRecord.pop_counts[i];
this.data[0].dataPoints.push({x:t, y:p});
}
removeOldest() {
this.data[0].dataPoints.shift();
}
}
module.exports = PopulationChart;

View File

@@ -0,0 +1,40 @@
const FossilRecord = require("../FossilRecord");
const ChartController = require("./ChartController");
class SpeciesChart extends ChartController {
constructor() {
super("Species");
}
setData() {
this.clear();
this.data.push({
type: "line",
markerType: "none",
color: 'black',
showInLegend: true,
name: "spec",
legendText: "Number of Species",
dataPoints: []
}
);
for (var i in FossilRecord.tick_record) {
var t = FossilRecord.tick_record[i];
var p = FossilRecord.species_counts[i];
this.data[0].dataPoints.push({x:t, y:p});
}
}
addNewest() {
var i = FossilRecord.tick_record.length-1;
var t = FossilRecord.tick_record[i];
var p = FossilRecord.species_counts[i];
this.data[0].dataPoints.push({x:t, y:p});
}
removeOldest() {
this.data[0].dataPoints.shift();
}
}
module.exports = SpeciesChart;