const data = [
{ key: 'CA', value: 88 }, { key: 'TX', value: 71 }, { key: 'FL', value: 64 },
{ key: 'NY', value: 79 }, { key: 'PA', value: 46 }, { key: 'IL', value: 52 },
{ key: 'OH', value: 41 }, { key: 'GA', value: 58 }, { key: 'NC', value: 55 },
{ key: 'MI', value: 38 }, { key: 'NJ', value: 74 }, { key: 'VA', value: 61 },
{ key: 'WA', value: 69 }, { key: 'AZ', value: 49 }, { key: 'MA', value: 82 },
{ key: 'TN', value: 44 }, { key: 'IN', value: 35 }, { key: 'MO', value: 33 },
{ key: 'MD', value: 76 }, { key: 'WI', value: 39 }, { key: 'CO', value: 63 },
{ key: 'MN', value: 51 }, { key: 'SC', value: 42 }, { key: 'AL', value: 28 },
{ key: 'LA', value: 31 }, { key: 'KY', value: 26 }, { key: 'OR', value: 57 },
{ key: 'OK', value: 24 }, { key: 'CT', value: 72 }, { key: 'UT', value: 47 },
{ key: 'IA', value: 34 }, { key: 'NV', value: 45 }, { key: 'AR', value: 22 },
{ key: 'MS', value: 19 }, { key: 'KS', value: 29 }, { key: 'NM', value: 27 },
{ key: 'NE', value: 32 }, { key: 'ID', value: 36 }, { key: 'WV', value: 17 },
{ key: 'HI', value: 66 }, { key: 'NH', value: 68 }, { key: 'ME', value: 43 },
{ key: 'RI', value: 59 }, { key: 'MT', value: 25 }, { key: 'DE', value: 62 },
{ key: 'SD', value: 21 }, { key: 'ND', value: 23 }, { key: 'AK', value: 37 },
{ key: 'VT', value: 54 }, { key: 'WY', value: 18 }, { key: 'DC', value: 91 },
]
const series = [
{
name: 'Illustrative index',
joinBy: ['abbr', 'key'],
data,
scale: { palette: 'blues', classes: 5 },
stroke: { color: '#ffffff', width: 1.4 },
},
]
const hex = new ApexMaps(document.getElementById('hex'), {
chart: { height: 380 },
geo: { map: 'us', layout: 'hex' },
series,
dataLabels: { enabled: true, minFeatureArea: 0, collision: 'none' },
legend: { position: 'bottom', title: 'Illustrative index' },
})
const geo = new ApexMaps(document.getElementById('geo'), {
chart: { height: 380 },
geo: { map: 'us' },
series,
legend: { position: 'bottom', title: 'Illustrative index' },
})
ApexMaps.registerLayout('demo/quad@hex', {
keyField: 'code',
cells: { NW: [0, 0], NE: [1, 0], SW: [0, 1], SE: [1, 1] },
names: {
NW: 'North west',
NE: 'North east',
SW: 'South west',
SE: 'South east',
},
})
const custom = new ApexMaps(document.getElementById('custom'), {
chart: { height: 240 },
geo: { map: 'demo/quad@hex' },
series: [
{
name: 'Utilisation',
joinBy: ['code', 'key'],
data: [
{ key: 'NW', value: 74 },
{ key: 'NE', value: 41 },
{ key: 'SW', value: 58 },
{ key: 'SE', value: 22 },
],
scale: { palette: 'oranges', classes: 4 },
},
],
dataLabels: { enabled: true, minFeatureArea: 0, collision: 'none' },
})
Promise.all([hex.render(), geo.render(), custom.render()])
let onHex = true
document.getElementById('toggle').addEventListener('click', async () => {
onHex = !onHex
await hex.updateOptions({ geo: { map: 'us', layout: onHex ? 'hex' : null } })
})