Echarts 是一個非常強(qiáng)大的前端數(shù)據(jù)可視化框架,支持下鉆操作,可以通過點(diǎn)擊圖表上的某個區(qū)域,實(shí)現(xiàn)數(shù)據(jù)的進(jìn)一步展示和細(xì)分。如果使用 Echarts 的 geo 組件來展示地理數(shù)據(jù),可以通過加載下層的地圖數(shù)據(jù),實(shí)現(xiàn)縣級行政區(qū)劃的下鉆效果,具體步驟如下:
// 加載縣級地圖數(shù)據(jù) $.get('湖北省.json', function (geoJson) { echarts.registerMap('hb', geoJson); }); // 定義 geo 組件配置項(xiàng) var geo = { map: 'hb', roam: true, // 可以縮放和平移 label: { show: true }, itemStyle: { normal: { borderColor: '#fff', borderWidth: 1, areaColor: '#eee' }, emphasis: { areaColor: '#F8E71C' // 鼠標(biāo)懸停時區(qū)域高亮 } } }; // 定義 series 配置項(xiàng) var series = [{ type: 'map', map: 'hb', label: { show: true }, itemStyle: { normal: { borderColor: '#fff' } }, data: [ {name: '仙桃市', value: 100}, {name: '潛江市', value: 200}, {name: '天門市', value: 300}, // 省直轄縣級行政區(qū)劃 {name: '神農(nóng)架林區(qū)', value: 400}, {name: '長陽土家族自治縣', value: 500}, {name: '五峰土家族自治縣', value: 600}, // 更多縣級區(qū)劃 ] }]; // 初始化 Echarts 實(shí)例 var myChart = echarts.init(document.getElementById('main')); // 設(shè)置 geo 和 series 配置項(xiàng) myChart.setOption({ geo: geo, series: series }); // 監(jiān)聽地圖區(qū)域點(diǎn)擊事件 myChart.on('click', function (params) { var name = params.name; // 加載下一級行政區(qū)劃的地圖數(shù)據(jù) $.get(name + '.json', function (geoJson) { echarts.registerMap(name, geoJson); // 更新 geo 和 series 配置項(xiàng) geo = { map: name, roam: true, label: { show: true }, itemStyle: { normal: { borderColor: '#fff', borderWidth: 1, areaColor: '#eee' }, emphasis: { areaColor: '#F8E71C' } } }; series = [{ type: 'map', map: name, label: { show: true }, itemStyle: { normal: { borderColor: '#fff' } }, data: [ {name: '某區(qū)', value: 100}, {name: '某縣', value: 200}, // 更多區(qū)劃 ] }]; myChart.setOption({ geo: geo, series: series }); }); });
以上是一個簡單的示例代碼,其中 '湖北省.json' 文件為省級行政區(qū)劃的地圖數(shù)據(jù),'仙桃市.json'、'潛江市.json'、'天門市.json' 等是對應(yīng)縣級行政區(qū)劃的地圖數(shù)據(jù)。通過監(jiān)聽地圖區(qū)域點(diǎn)擊事件,加載下一級行政區(qū)劃的地圖數(shù)據(jù),并更新 geo 和 series 配置項(xiàng),即可完成縣級行政區(qū)劃的下鉆操作。
上一篇python 線性變換
下一篇python 正則匹配器