-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcharts.js
159 lines (126 loc) · 3.99 KB
/
charts.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
// Load the Visualization API and the corechart package.
google.charts.load('current', {'packages':['corechart', 'bar'], 'language': 'pl'});
// Set a callback to run when the Google Visualization API is loaded.
google.charts.setOnLoadCallback(drawChartProgressBar);
google.charts.setOnLoadCallback(drawChartDailyVaxers);
google.charts.setOnLoadCallback(drawChartWeeklyVaxers);
google.charts.setOnLoadCallback(drawChartTotalVaxers);
docUrl = 'https://docs.google.com/spreadsheets/d/1RQAg-gqb8MfzXF30QC9CCAVpWF5U5YkL8gnnq54q4C8';
function drawChartProgressBar() {
var queryString = encodeURIComponent('SELECT A, B, C, D');
var query = new google.visualization.Query( docUrl + '/gviz/tq?gid=1577334276&tq=' + queryString );
query.send(handleQueryResponseProgressBar);
}
function drawChartDailyVaxers() {
var queryString = encodeURIComponent('SELECT B, D, F');
var query = new google.visualization.Query( docUrl + '/gviz/tq?gid=1008697565&tq=' + queryString );
query.send(handleQueryResponseDaily);
}
function drawChartWeeklyVaxers() {
var queryString = encodeURIComponent('SELECT B, C');
var query = new google.visualization.Query( docUrl + '/gviz/tq?tq=' + queryString );
query.send(handleQueryResponseWeekly);
}
function drawChartTotalVaxers() {
var queryString = encodeURIComponent('SELECT B, D');
var query = new google.visualization.Query( docUrl + '/gviz/tq?tq=' + queryString );
query.send(handleQueryResponseTotal);
}
function handleQueryResponseProgressBar(response) {
var data = response.getDataTable();
var options = {
isStacked: 'percent',
animation: {
duration: 750,
"startup": true
},
hAxis: {
position: 'none'
},
vAxis: {
gridlines: {
color: 'transparent'
}
},
legend: {
position: 'bottom'
},
colors: ['#34a853', '#4285f4', '#DC3912'],
annotations: {
alwaysOutside: true
}
};
var view = new google.visualization.DataView(data);
var chart = new google.visualization.BarChart(document.getElementById('progress_bar'));
chart.draw(view, options);
}
function handleQueryResponseDaily(response) {
var data = response.getDataTable();
var options = {
chart: {title:'Postęp szczepień dzień po dniu'},
animation: {
startup: true,
duration: 750,
},
hAxis: {
gridlines: {
color: 'transparent'
}
},
colors: ['#4285f4', '#34a853'],
legend: { position: 'top' }
};
var chart = new google.visualization.ColumnChart(document.getElementById('daily_vaxers'));
chart.draw(data, options);
}
function handleQueryResponseWeekly(response) {
var data = response.getDataTable();
var options = {
chart: {title:'Podane pierwsze dawki'},
animation: {
startup: true,
duration: 750,
},
hAxis: {
gridlines: {
color: 'transparent'
}
},
legend: { position: 'top' }
};
var chart = new google.visualization.ColumnChart(document.getElementById('weekly_vaxers'));
chart.draw(data, options);
}
function handleQueryResponseTotal(response) {
var data = response.getDataTable();
var options = {
chart: {title:'Zaszczepieni'},
animation: {
startup: true,
duration: 750,
},
hAxis: {
gridlines: {
color: 'transparent'
}
},
legend: {position: 'top'},
};
var chart = new google.visualization.AreaChart(document.getElementById('total_vaxers'));
chart.draw(data, options);
}
function fetchCSV( type ) {
var queryString = encodeURIComponent('SELECT A, B');
var query = new google.visualization.Query( docUrl + '/gviz/tq?tq=' + queryString );
query.send(deliverCSV);
}
function deliverCSV( response ) {
var data = response.getDataTable();
var csv = google.visualization.dataTableToCsv(data);
console.log(csv);
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
hiddenElement.target = '_blank';
hiddenElement.download = 'dane-szczepionki.csv';
hiddenElement.click();
}