HTMLcopy
x
1
<script src="https://cdn.anychart.com/releases/8.9.0/js/anychart-base.min.js"></script>
2
<script src="https://cdn.anychart.com/releases/8.9.0/js/anychart-map.min.js"></script>
3
<script src="https://cdn.anychart.com/releases/8.9.0/geodata/countries/united_states_of_america/united_states_of_america.js"></script>
4
5
<script src="https://cdn.anychart.com/releases/8.9.0/js/anychart-data-adapter.min.js"></script>
6
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.15/proj4.js"></script>
7
8
<script src="https://d3js.org/d3-scale.v3.min.js"></script>
9
<script src="https://d3js.org/d3-interpolate.v2.min.js"></script>
10
11
<div id="container"></div>
CSScopy
8
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
JavaScriptcopy
68
1
anychart.onDocumentReady(function () {
2
anychart.data.loadJsonFile('https://gist.githubusercontent.com/shacheeswadia/70ec3d69e0e7a8bff7917607ea2926e4/raw/c3329fa81e86d9e637503b042becd17e68d9a718/bubbleMapData.json',
3
function (data) {
4
5
// Creates map chart
6
var map = anychart.map();
7
8
// Define settings for maps regions
9
map
10
.unboundRegions()
11
.enabled(true)
12
.fill('#E1E1E1')
13
.stroke('#D2D2D2');
14
15
// Set geodata using the script added
16
map.geoData('anychart.maps.united_states_of_america');
17
18
// Set Chart Title
19
map
20
.title('2020 US Election Results');
21
22
// Set bubble min/max size settings
23
map.minBubbleSize('0.8%').maxBubbleSize('5%');
24
25
// Linear scale to get opacity values
26
var opacity = d3.scaleLinear()
27
.domain([49, 70])
28
.range([0.4, 0.9]);
29
30
// Fill color based on winner and opacity based on % of votes won
31
data.forEach(function(d){
32
var opacityVal = opacity(d.votepercent);
33
opacityVal = opacityVal.toFixed(2);
34
if(d.winner == "Democrats"){
35
d.fill = "#019bd8 " + opacityVal;
36
}else{
37
d.fill = "#d81c28 " + opacityVal;
38
}
39
});
40
41
//Charting the bubbles
42
var series = map.bubble(
43
anychart.data.set(data).mapAs({ size: 'electoralvotes' })
44
);
45
46
//Tooltip
47
series
48
.tooltip(true)
49
.stroke('2 #E1E1E1')
50
.selectionMode('none');
51
52
//Labels
53
series
54
.labels()
55
.enabled(true)
56
.anchor('left-center')
57
.position('right')
58
.fontSize(11)
59
.offsetX(5);
60
61
// set container id for the chart
62
map.container('container');
63
64
// Initiates chart drawing
65
map.draw();
66
67
});
68
});