*最终实现的效果图:中间部分是最终实现的效果图

  1. 第一步:跟UI沟通,请UI提供对应的SVG图并且切好对应的块,如(C01-C13的块),下面的图片是我这边引入厂图的SVG,一般情况下,UI提供的SVG是没有name值的,这就需要我们自己添加上去!!!(重点!重点!重点!必须要添加name值,不然Echarts没法识别对应的位置

2.第二步:引入SVG到Echarts里,并对SVG进行数据联调,实现最终的效果

const myChart = echarts.init(document.getElementById('factoryDrawing'));
//data里存放C01-C13的数据,原本是有13组数据的,但是太多了,我就只放三个
const data = [ {name: 'C01', // 和SVG的name对应title: 'C01库存信息',list: [{title: '库存预警值(吨)',label: 1000,}, {title: '实际库存(吨)',label: 850,}, {title: '其中原板(吨)',label: 300,}, {title: '在制品(吨)',label: 250,}, {title: '产成品(吨)',label: 300,},]},{name: 'C02',title: 'C02库存信息',list: [{title: '库存预警值(吨)',label: 1000,}, {title: '实际库存(吨)',label: 850,}, {title: '其中原板(吨)',label: 300,}, {title: '在制品(吨)',label: 250,}, {title: '产成品(吨)',label: 300,},]},{name: 'C03',title: 'C03库存信息',list: [{title: '库存预警值(吨)',label: 1000,}, {title: '实际库存(吨)',label: 850,}, {title: '其中原板(吨)',label: 300,}, {title: '在制品(吨)',label: 250,}, {title: '产成品(吨)',label: 300,},]}
];data.map(item => {Object.assign(item, {itemStyle: {color: 'transparent', // 引入SVG后,UI切好的块可能会显示黑色,这就需要我们手动改变黑色块的背景色},emphasis: {label: {show: false, //如果UI提供的SVG上有对应块的name值就隐藏,没有就可以不隐藏}},tooltip: { //这是鼠标悬浮在对应的块上显示对应的提示(效果图3红框)formatter(param) {return `<div class='factoryDrawingTooltip'><div class="factoryDrawingTooltipHead flex-align"><img class="factoryDrawingTooltipImg" src="../common/image/factoryDrawingTooltipLocation.png" alt="">${param.name}库存信息</div><div class="factoryDrawingTooltipList">${item.list.map((listItem, listIndex) => `<div class="factoryDrawingTooltipListItem flex"><div>${listItem.title}</div><div class="factoryDrawingTooltipListItemLabel ${listIndex === 0 ? 'fontGlowOrange' : 'fontGlow'}">${listItem.label}</div></div>`).join('')}</div></div>`}}})
})
$.get('../common/image/factoryDrawing.svg', function (svg) {echarts.registerMap('factoryDrawing', {svg: svg}); //这里的factoryDrawing必须要和geo里面的map值统一let option = {visualMap: { // 这块内容对最终效果图没啥作用,但是又必须要要写,不写就不显示,写了也不影响效果图left: 'center',bottom: '200%',min: 5,max: 100,orient: 'horizontal',text: ['', 'Price'],realtime: true,calculable: true,inRange: {color: ['#cf0000']}},tooltip: {className: 'factoryDrawing',triggerOn: 'mousemove' // 只做鼠标悬浮效果},emphasis: {itemStyle: {color: 'transparent',areaColor: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0, color: "rgb(255,120,21,0.3)"},{offset: 0.5, color: "rgba(255,120,21, 0.49)"},{offset: 1, color: "rgba(255,120,21, 0.8)"},]), // 鼠标悬浮对应的块显示橙色borderColor: 'rgba(236,106,0, 0.49)',borderWidth: 2,},},geo: {name: 'factoryDrawing',map: 'factoryDrawing',roam: false,zoom: 1.4, // 缩放selectedMode: false,regions: data}};myChart.setOption(option);
});

图3:

Echarts构建厂图(地图等类型)相关推荐

  1. vue3.0中echarts实现中图地图的省份切换,并解决多次切换后地图卡死的情况

    一.echarts安装及地图的准备 1.安装echarts npm install echarts 2.下载china.js等json文件到项目中的文件夹 map的下载链接:https://pan.b ...

  2. Vue+Echarts构建可视化大数据平台实战项目(上)粒子动效,登录界面抖动,背景图轮播★

    Vue+Echarts构建可视化大数据平台实战项目(上) 前言 分享之前我们先来普及一下什么是数据可视化?数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理.数据可视化通俗来说就 ...

  3. echarts 3d饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件

    echarts下载及使用 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fir ...

  4. JavaScript高德地图中绘制echarts图表随地图移动

    JavaScript高德地图中绘制echarts图表随地图移动** 先上效果图 实现方法如下: 使用高德地图"信息窗体",信息窗体AMap.InfoWindow的属性content ...

  5. (下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)

    回顾 作者用心写作,请动动你可爱的小手点亮大拇指.你的鼓励是作者继续创作的动力- 前端的学习,不能仅仅依靠知识点的学习,实战项目的操作可以帮助我们整理知识点以及提高编程能力,更有助于学习和实践,最重要 ...

  6. Spring Boot 实践折腾记(20):Thymleaf + webjar + ECharts 构建本地图表

    前言 作为geek后端程序员,画图的选择其实有很多,手画,excel,ppt,copy别人的图等.虽然用excel最方便,但是类似按中国省份来显示详细数据的图,excel是画不了的,而PPT画起来又很 ...

  7. echarts学习——(下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)

    一个基于Vue前端框架和第三方图表库Echarts构建的可视化大数据平台,通过vue项目构建.指令的灵活运用.组件封装.组件之间通信,使内部图表组件库可实现自由替换和组合.以及一些功能模块的设计及代码 ...

  8. echart 动画 饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件

    echarts下载及使用 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fir ...

  9. Echarts数据可视化series-map地图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

最新文章

  1. ftp服务器收集文件,ftp服务器收集文件
  2. js的parseInt函数结果为0很奇怪的问题
  3. java xml解析_Java解析XML(4种方法)
  4. String方法(一)
  5. 集成产品开发团队的管理和决策
  6. Collectors.collectingAndThen()
  7. 网页f12查看服务器,网页中审查元素(按F12)与查看网页源代码的区别
  8. php 论坛下载,PHPWind论坛社区
  9. 软件项目设计文档分类
  10. ccf csp认证试题
  11. 分类--ROC 和曲线下面积
  12. 有没有人用过迅捷PDF转换器?文件转换效果怎么样?
  13. IE6,IE7和FireFox兼容处理(持续发现中)
  14. 面向对象课程设计日志(八)
  15. ps在html中的应用程序,Photoshop在网页设计中的应用
  16. Hibernate与JPA
  17. Messidor视网膜数据集
  18. 自然数系统 python
  19. Unity | 扩展编辑器之新建Lua脚本(无代码操作)
  20. Android 打开网络上pdf文件

热门文章

  1. APISIX 成为 Apache 项目两周年!
  2. 仿照利用android系统源码资源文件,修改SeekBar颜色 前景与背景
  3. Windows远程桌面连接提示:出行身份验证错误 要求的函数不受支持
  4. 对于MIGRATE_MOVABLE的理解
  5. thinkpad e40 4sc安装windows7的一点感受
  6. Vscode自动识别文件编码
  7. 【生活指南】我的未来我做主
  8. Google SEO专业术语大全(一)
  9. 浅谈iOS尺寸单位pt、ppi与px
  10. Bugfree——CentOS6.8搭建测试环境