|
@@ -54,6 +54,26 @@ const graph = new Vue({
|
|
|
svg.append("g")
|
|
svg.append("g")
|
|
|
.call(d3.axisLeft(y));
|
|
.call(d3.axisLeft(y));
|
|
|
|
|
|
|
|
|
|
+ regression = ss.linearRegression(sorted.map((d) => { return [+d.date, d.value] }));
|
|
|
|
|
+ line = ss.linearRegressionLine(regression);
|
|
|
|
|
+ trendline = x.domain().map((x) => {
|
|
|
|
|
+ return {
|
|
|
|
|
+ date: x,
|
|
|
|
|
+ value: line(+x)
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ svg.append("path")
|
|
|
|
|
+ .datum(trendline)
|
|
|
|
|
+ .attr("fill", "none")
|
|
|
|
|
+ .attr("stroke", "red")
|
|
|
|
|
+ .attr("stroke-width", 1)
|
|
|
|
|
+ .attr("d", d3.line().x((d) => {
|
|
|
|
|
+ return x(d.date);
|
|
|
|
|
+ }).y((d) => {
|
|
|
|
|
+ return y(d.value);
|
|
|
|
|
+ }));
|
|
|
|
|
+
|
|
|
svg.append("path")
|
|
svg.append("path")
|
|
|
.datum(sorted)
|
|
.datum(sorted)
|
|
|
.attr("fill", "none")
|
|
.attr("fill", "none")
|