-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex5.html
69 lines (59 loc) · 2.33 KB
/
index5.html
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
69
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Valores das ações da Tesla e do Facebook</title>
<link rel="stylesheet" href="css/dc.min.css">
<link rel="stylesheet" href="css/styles.css">
<script src="js/crossfilter.min.js"></script>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="js/dc.min.js"></script>
</head>
<body>
<div><h1> Valores das ações da Tesla e do Facebook</h1>
<div id="chart"></div>
</div>
<script type="text/javascript">
let compositeChart = dc.compositeChart('#chart');
d3.csv("data/stocks.csv").then(function(data){
// formatando nossos dados
let parseDate = d3.timeParse("%Y/%m/%d");
data.forEach(function(d){
d.date = parseDate(d.date);
d.tesla = +d.tesla;
d.facebook = +d.facebook;
});
//criando um crossfilter
let facts = crossfilter(data);
let dateDim = facts.dimension(function(d){
return d.date;
});
let teslaByDayGroup = dateDim.group().reduceSum(function(d){
return d.tesla;
});
let fbByDayGroup = dateDim.group().reduceSum(function(d){
return d.facebook;
});
let xScale = d3.scaleTime()
.domain([dateDim.bottom(1)[0].date, dateDim.top(1)[0].date]);
compositeChart.width(800)
.height(400)
.margins({top: 50, right: 50, bottom: 25, left: 40})
.dimension(dateDim)
.x(xScale)
.xUnits(d3.timeDays)
.renderHorizontalGridLines(true)
.legend(dc.legend().x(700).y(5).itemHeight(13).gap(5))
.brushOn(false)
.compose([
dc.lineChart(compositeChart)
.group(teslaByDayGroup, 'Tesla')
.ordinalColors(['steelblue']),
dc.lineChart(compositeChart)
.group(fbByDayGroup, 'Facebook')
.ordinalColors(['darkorange'])]);
dc.renderAll();
});
</script>
</body>
</html>