-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcharts_de.js
106 lines (98 loc) · 3.01 KB
/
charts_de.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
var mapbox_Token =
'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw'
var csv_url =
'https://raw.githubusercontent.com/covid19-eu-zh/covid19-eu-data/master/dataset/covid-19-de.csv'
var region_type = 'state'
var geojson_url =
'https://raw.githubusercontent.com/codeforamerica/click_that_hood/master/public/data/germany.geojson'
var geojson_key = 'properties.name'
var de_state_zh = {
"Baden-Württemberg": "巴登-符腾堡",
"Bayern": "巴伐利亚",
"Berlin": "柏林",
"Brandenburg": "勃兰登堡",
"Bremen": "不来梅州",
"Hamburg": "汉堡",
"Hessen": "黑森",
"Mecklenburg-Vorpommern": "梅克伦堡-前波美拉尼亚",
"Niedersachsen": "下萨克森",
"Nordrhein-Westfalen": "北莱茵-威斯特法伦",
"Rheinland-Pfalz": "莱茵兰-普法尔茨",
"Saarland": "萨尔兰",
"Sachsen": "萨克森",
"Schleswig-Holstein": "石勒苏益格-荷尔斯泰因",
"Thüringen": "图林根",
}
Plotly.d3.csv(csv_url, function(err, rows) {
function unpack(rows) {
var daily_by_region = { regions: [] }
rows.map(function(row) {
if (daily_by_region[row[region_type]]) {
daily_by_region[row[region_type]]['daily_cases'].push(row['cases'])
daily_by_region[row[region_type]]['datetime'].push(row['datetime'])
} else {
daily_by_region[row[region_type]] = {}
daily_by_region[row[region_type]]['daily_cases'] = [row['cases']]
daily_by_region[row[region_type]]['datetime'] = [row['datetime']]
daily_by_region.regions.push(row[region_type])
}
})
return daily_by_region
}
daily_by_region = unpack(rows)
// console.log(daily_by_region)
var data = [
{
type: 'choropleth',
locationmode: 'geojson-id',
locations: daily_by_region.regions,
z: daily_by_region.regions.map(function(reg) {
return daily_by_region[reg].daily_cases[daily_by_region[reg].daily_cases.length - 1]
}),
text: daily_by_region.regions.map(function(state) {return de_state_zh[state]}),
autocolorscale: true,
zmin: 1,
zmax: 500,
geojson: geojson_url,
featureidkey: geojson_key
}
]
var layout = {
title: '德国各州确诊病例',
width: 1000,
height: 1000,
geo: {
scope: 'europe',
resolution: 50,
showrivers: true,
rivercolor: '#fff',
showlakes: true,
lakecolor: '#fff',
showland: true,
landcolor: '#EAEAAE',
countrycolor: '#d3d3d3',
countrywidth: 1.5,
subunitcolor: '#d3d3d3',
lonaxis: {
range: [5, 16]
},
lataxis: {
range: [46, 56]
}
}
}
Plotly.setPlotConfig({ mapboxAccessToken: mapbox_Token })
Plotly.newPlot('map', data, layout)
var ts_data = [
{
type: 'scatter',
y: daily_by_region.sum.daily_cases,
x: daily_by_region.sum.datetime
}
]
var ts_layout = {
title: '德国总确诊病例数趋势图'
}
Plotly.newPlot('time_serie', ts_data, ts_layout)
// console.log(daily_by_region, layout)
})