-
Notifications
You must be signed in to change notification settings - Fork 0
/
ui.js
68 lines (59 loc) · 1.71 KB
/
ui.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import renderChart from 'vega-embed'
export async function plotData(container, xs, ys) {
const xvals = await xs.data()
const yvals = await ys.data()
const values = Array.from(yvals).map((y, i) => {
return { x: xvals[i], y: yvals[i] }
})
const spec = {
$schema: 'https://vega.github.io/schema/vega-lite/v2.json',
width: 300,
height: 300,
data: { values: values },
mark: 'point',
encoding: {
x: { field: 'x', type: 'quantitative' },
y: { field: 'y', type: 'quantitative' }
}
}
return renderChart(container, spec, { actions: false })
}
export async function plotDataAndPredictions(container, xs, ys, preds) {
const xvals = await xs.data()
const yvals = await ys.data()
const predVals = await preds.data()
const values = Array.from(yvals).map((y, i) => {
return { x: xvals[i], y: yvals[i], pred: predVals[i] }
})
const spec = {
$schema: 'https://vega.github.io/schema/vega-lite/v2.json',
width: 300,
height: 300,
data: { values: values },
layer: [
{
mark: 'point',
encoding: {
x: { field: 'x', type: 'quantitative' },
y: { field: 'y', type: 'quantitative' }
}
},
{
mark: 'line',
encoding: {
x: { field: 'x', type: 'quantitative' },
y: { field: 'pred', type: 'quantitative' },
color: { value: 'tomato' }
}
}
]
}
return renderChart(container, spec, { actions: false })
}
export function renderCoefficients(container, coeff) {
document.querySelector(container).innerHTML = `<span>a=${coeff['3'].toFixed(
3
)}, b=${coeff['2'].toFixed(3)}, c=${coeff['1'].toFixed(3)}, d=${coeff[
'0'
].toFixed(3)}</span>`
}