[+] Rebuild entire average graph from settings

This commit is contained in:
Hykilpikonna
2019-09-29 17:17:23 -04:00
parent 5e0394f11c
commit 5c9e67478f
2 changed files with 53 additions and 22 deletions
@@ -9,31 +9,62 @@ export default class GraphAverage extends Vue
// @ts-ignore
@Prop({required: true}) courses: Course[];
private settings =
{
};
/**
* Convert assignments list to a graph dataset.
* Generate settings
*/
get convertChart()
get chartSettings()
{
let courses = this.courses;
// Make column list
let columns = ['Course', 'GPA', 'MaxGPA'];
// Calculate GPA and MaxGPA for each course (rows)
let rows = courses.map(course =>
let settings =
{
return {
'Course': course.name,
'GPA': GPAUtils.getGP(course, course.letterGrade),
'MaxGPA': GPAUtils.getGP(course, 'A+')
};
});
// Dataset
dataset:
{
source: this.courses.map(course =>
{
// [Course name, GPA, MaxGPA]
return [course.name, GPAUtils.getGP(course, course.letterGrade),
GPAUtils.getGP(course, 'A+')];
})
},
// Return graph
return {columns: columns, rows: rows}
// X axis represents course names
xAxis:
{
type: 'value'
},
// Y axis represents GPAs and MaxGPAs
yAxis:
{
type: 'category',
data: this.courses.map(course => course.name)
},
// Data
series:
[
{
type: 'bar',
encode:
{
x: 1,
y: 0
}
},
{
type: 'bar',
encode:
{
x: 2,
y: 0
}
}
]
};
// TODO: Remove this
console.log(settings);
return settings;
}
}
@@ -1,6 +1,6 @@
<template>
<div id="graph-average">
<ve-histogram :data="convertChart" :extend="settings"></ve-histogram>
<ve-bar :extend="chartSettings"></ve-bar>
</div>
</template>