搞死我了!echart geo 颜色 调不对?老鸟教你避开那些坑,直接抄作业

搞死我了!echart geo 颜色 调不对?老鸟教你避开那些坑,直接抄作业

搞死我了!echart geo 颜色 调不对?老鸟教你避开那些坑,直接抄作业。

这破事儿我折腾了整整三天。头发掉了一把,眼珠子都快瞪出来了。

为啥?因为官方文档太冷冰冰,全是代码,没几句人话。

你照着文档敲,结果地图灰扑扑的,像块死肉。

或者颜色乱飞,红的像血,绿的像草,丑得想砸键盘。

今天我不讲大道理,只讲怎么把地图弄得像样点。

咱们直接上干货,全是真金白银砸出来的经验。

第一步,别急着写代码,先搞明白数据格式。

很多新手栽在这儿,数据是个数组,但geo需要对象。

你得把数据转成 [{name: '北京', value: 100}] 这种格式。

不然你设置颜色,它根本不理你,直接给你默认灰。

这一步省了,后面全白搭。

第二步,visualMap 是灵魂,别瞎配。

很多人喜欢用 series 里的 itemStyle 硬涂颜色。

那是死办法,数据一变,颜色全乱。

要用 visualMap,动态映射。

比如,value 大于 50 的标红,小于 10 的标蓝。

代码大概长这样:

visualMap: {

min: 0,

max: 100,

inRange: {

color: ['#50a3ba', '#eac736', '#d94e5d']

},

text: ['高', '低'],

calculable: true

}

注意,inRange 里的颜色数组,顺序是从低到高。

别搞反了,不然高值变浅色,低值变深色,看着闹心。

第三步,geo 的 roam 和 zoom 要配合好。

地图要是不能缩放,用户体验极差。

roam: true 开启缩放和平移。

但 zoom 的初始值别设太大,不然进来第一眼啥也看不清。

设个 1.2 左右,刚好看清省份轮廓。

第四步,背景色和地图色别撞车。

这是最容易被忽视的坑。

你地图设了深蓝,背景也是深蓝,那就完了。

看不见边界线,跟一块大饼似的。

解决办法:给 geo 设置 itemStyle。

areaColor: '#2c3e50', // 地图底色

borderColor: '#ffffff', // 边界线白色

borderWidth: 0.5 // 线细点,精致

这样地图浮在背景上,层次感立马出来。

第五步,处理异常数据,比如 null 值。

有时候后端传数据,有些省份没数据,传 null。

echart 默认可能不显示,或者显示奇怪的颜色。

你得在 series 里加个 silent: true,或者在数据预处理时过滤。

别让用户看到空白的省份,觉得你数据造假。

真实场景里,我们遇到过一次,某省数据缺失。

直接显示灰色,用户以为系统坏了。

后来加了个 tooltip,鼠标放上去提示“暂无数据”。

体验好多了。

再说说配色。

别用高饱和度的纯色,像 #FF0000 这种。

刺眼,看着累。

用低饱和度的莫兰迪色系,或者渐变色。

比如从 #1e3c72 到 #2a5298 的蓝色渐变。

显得高级,专业。

还有,地图加载慢的问题。

geoJson 文件太大,加载要好几秒。

这时候加个 loading 动画。

别让用户盯着白屏发呆,以为网站挂了。

最后,测试!测试!测试!

不同分辨率的屏幕,颜色显示可能不一样。

手机上看,电脑上看,效果不一样。

多测几台设备,别偷懒。

我上次就在 iPad 上发现颜色偏色。

后来发现是 safari 浏览器的渲染问题。

换了个 polyfill 才搞定。

这些坑,都是钱和泪换来的。

希望这篇能帮你省点时间。

echart geo 颜色 调好了,心情都变好了。

别再去翻那些晦涩的文档了。

照着做,准没错。

要是还调不好,评论区留言,我帮你看看。

毕竟,独乐乐不如众乐乐。

大家一起把地图做得漂漂亮亮的。

这才是程序员该有的浪漫。

好了,就这么多。

去试试吧,别犹豫。

行动比纠结强。

祝你好运。

本文关键词:echart geo 颜色