**准备工作:**
1.首先使用vue-cli的脚手架生成vue项目。
2.然后使用npm安装echarts
npm install echarts -S
3.安装完后再mian.js中挂载到vue的实例上使用,当然你也可以哪里需要在再哪里引入
引入:
import echarts from ‘echarts‘ // e-charts
挂载:
Vue.prototype.$echarts = echarts
**开始使用**
这里我是直接写在当前文件夹中,并没有封装在公共组件中,下一篇在接着讲怎么把echarts封装成组件
1.需要把视图装着的容器 <div id="main style="width: 100%;height:800px;"></div>
2.把echarts的逻辑代码写在methods:{}中,然后在调用这个方法
mounted () {
this.mapChart()
},
3.方法编写:直接上代码
methods: { mapChart () { var myMapChart = this.$echarts.init(document.getElementById(‘main‘)) // 34个省、市、自治区的名字拼音映射数组 var provinces = { // 23个省 台湾: ‘taiwan‘, 河北: ‘hebei‘, 山西: ‘shanxi‘, 辽宁: ‘liaoning‘, 吉林: ‘jilin‘, 黑龙江: ‘heilongjiang‘, 江苏: ‘jiangsu‘, 浙江: ‘zhejiang‘, 安徽: ‘anhui‘, 福建: ‘fujian‘, 江西: ‘jiangxi‘, 山东: ‘shandong‘, 河南: ‘henan‘, 湖北: ‘hubei‘, 湖南: ‘hunan‘, 广东: ‘guangdong‘, 海南: ‘hainan‘, 四川: ‘sichuan‘, 贵州: ‘guizhou‘, 云南: ‘yunnan‘, 陕西: ‘shanxi1‘, 甘肃: ‘gansu‘, 青海: ‘qinghai‘, // 5个自治区 新疆: ‘xinjiang‘, 广西: ‘guangxi‘, 内蒙古: ‘neimenggu‘, 宁夏: ‘ningxia‘, 西藏: ‘xizang‘, // 4个直辖市 北京: ‘beijing‘, 天津: ‘tianjin‘, 上海: ‘shanghai‘, 重庆: ‘chongqing‘, // 2个特别行政区 香港: ‘xianggang‘, 澳门: ‘aomen‘ } var cityMap = { 北京市: ‘110100‘, 天津市: ‘120100‘, 上海市: ‘310100‘, 重庆市: ‘500100‘, 崇明县: ‘310200‘, 湖北省直辖县市: ‘429000‘, 铜仁市: ‘522200‘, 毕节市: ‘522400‘, 石家庄市: ‘130100‘, 唐山市: ‘130200‘, 秦皇岛市: ‘130300‘, 邯郸市: ‘130400‘, 邢台市: ‘130500‘, 保定市: ‘130600‘, 张家口市: ‘130700‘, 承德市: ‘130800‘, 沧州市: ‘130900‘, 廊坊市: ‘131000‘, 衡水市: ‘131100‘, 太原市: ‘140100‘, 大同市: ‘140200‘, 阳泉市: ‘140300‘, 长治市: ‘140400‘, 晋城市: ‘140500‘, 朔州市: ‘140600‘, 晋中市: ‘140700‘, 运城市: ‘140800‘, 忻州市: ‘140900‘, 临汾市: ‘141000‘, 吕梁市: ‘141100‘, 呼和浩特市: ‘150100‘, 包头市: ‘150200‘, 乌海市: ‘150300‘, 赤峰市: ‘150400‘, 通辽市: ‘150500‘, 鄂尔多斯市: ‘150600‘, 呼伦贝尔市: ‘150700‘, 巴彦淖尔市: ‘150800‘, 乌兰察布市: ‘150900‘, 兴安盟: ‘152200‘, 锡林郭勒盟: ‘152500‘, 阿拉善盟: ‘152900‘, 沈阳市: ‘210100‘, 大连市: ‘210200‘, 鞍山市: ‘210300‘, 抚顺市: ‘210400‘, 本溪市: ‘210500‘, 丹东市: ‘210600‘, 锦州市: ‘210700‘, 营口市: ‘210800‘, 阜新市: ‘210900‘, 辽阳市: ‘211000‘, 盘锦市: ‘211100‘, 铁岭市: ‘211200‘, 朝阳市: ‘211300‘, 葫芦岛市: ‘211400‘, 长春市: ‘220100‘, 吉林市: ‘220200‘, 四平市: ‘220300‘, 辽源市: ‘220400‘, 通化市: ‘220500‘, 白山市: ‘220600‘, 松原市: ‘220700‘, 白城市: ‘220800‘, 延边朝鲜族自治州: ‘222400‘, 哈尔滨市: ‘230100‘, 齐齐哈尔市: ‘230200‘, 鸡西市: ‘230300‘, 鹤岗市: ‘230400‘, 双鸭山市: ‘230500‘, 大庆市: ‘230600‘, 伊春市: ‘230700‘, 佳木斯市: ‘230800‘, 七台河市: ‘230900‘, 牡丹江市: ‘231000‘, 黑河市: ‘231100‘, 绥化市: ‘231200‘, 大兴安岭地区: ‘232700‘, 南京市: ‘320100‘, 无锡市: ‘320200‘, 徐州市: ‘320300‘, 常州市: ‘320400‘, 苏州市: ‘320500‘, 南通市: ‘320600‘, 连云港市: ‘320700‘, 淮安市: ‘320800‘, 盐城市: ‘320900‘, 扬州市: ‘321000‘, 镇江市: ‘321100‘, 泰州市: ‘321200‘, 宿迁市: ‘321300‘, 杭州市: ‘330100‘, 宁波市: ‘330200‘, 温州市: ‘330300‘, 嘉兴市: ‘330400‘, 湖州市: ‘330500‘, 绍兴市: ‘330600‘, 金华市: ‘330700‘, 衢州市: ‘330800‘, 舟山市: ‘330900‘, 台州市: ‘331000‘, 丽水市: ‘331100‘, 合肥市: ‘340100‘, 芜湖市: ‘340200‘, 蚌埠市: ‘340300‘, 淮南市: ‘340400‘, 马鞍山市: ‘340500‘, 淮北市: ‘340600‘, 铜陵市: ‘340700‘, 安庆市: ‘340800‘, 黄山市: ‘341000‘, 滁州市: ‘341100‘, 阜阳市: ‘341200‘, 宿州市: ‘341300‘, 六安市: ‘341500‘, 亳州市: ‘341600‘, 池州市: ‘341700‘, 宣城市: ‘341800‘, 福州市: ‘350100‘, 厦门市: ‘350200‘, 莆田市: ‘350300‘, 三明市: ‘350400‘, 泉州市: ‘350500‘, 漳州市: ‘350600‘, 南平市: ‘350700‘, 龙岩市: ‘350800‘, 宁德市: ‘350900‘, 南昌市: ‘360100‘, 景德镇市: ‘360200‘, 萍乡市: ‘360300‘, 九江市: ‘360400‘, 新余市: ‘360500‘, 鹰潭市: ‘360600‘, 赣州市: ‘360700‘, 吉安市: ‘360800‘, 宜春市: ‘360900‘, 抚州市: ‘361000‘, 上饶市: ‘361100‘, 济南市: ‘370100‘, 青岛市: ‘370200‘, 淄博市: ‘370300‘, 枣庄市: ‘370400‘, 东营市: ‘370500‘, 烟台市: ‘370600‘, 潍坊市: ‘370700‘, 济宁市: ‘370800‘, 泰安市: ‘370900‘, 威海市: ‘371000‘, 日照市: ‘371100‘, 莱芜市: ‘371200‘, 临沂市: ‘371300‘, 德州市: ‘371400‘, 聊城市: ‘371500‘, 滨州市: ‘371600‘, 菏泽市: ‘371700‘, 郑州市: ‘410100‘, 开封市: ‘410200‘, 洛阳市: ‘410300‘, 平顶山市: ‘410400‘, 安阳市: ‘410500‘, 鹤壁市: ‘410600‘, 新乡市: ‘410700‘, 焦作市: ‘410800‘, 濮阳市: ‘410900‘, 许昌市: ‘411000‘, 漯河市: ‘411100‘, 三门峡市: ‘411200‘, 南阳市: ‘411300‘, 商丘市: ‘411400‘, 信阳市: ‘411500‘, 周口市: ‘411600‘, 驻马店市: ‘411700‘, 省直辖县级行政区划: ‘469000‘, 武汉市: ‘420100‘, 黄石市: ‘420200‘, 十堰市: ‘420300‘, 宜昌市: ‘420500‘, 襄阳市: ‘420600‘, 鄂州市: ‘420700‘, 荆门市: ‘420800‘, 孝感市: ‘420900‘, 荆州市: ‘421000‘, 黄冈市: ‘421100‘, 咸宁市: ‘421200‘, 随州市: ‘421300‘, 恩施土家族苗族自治州: ‘422800‘, 长沙市: ‘430100‘, 株洲市: ‘430200‘, 湘潭市: ‘430300‘, 衡阳市: ‘430400‘, 邵阳市: ‘430500‘, 岳阳市: ‘430600‘, 常德市: ‘430700‘, 张家界市: ‘430800‘, 益阳市: ‘430900‘, 郴州市: ‘431000‘, 永州市: ‘431100‘, 怀化市: ‘431200‘, 娄底市: ‘431300‘, 湘西土家族苗族自治州: ‘433100‘, 广州市: ‘440100‘, 韶关市: ‘440200‘, 深圳市: ‘440300‘, 珠海市: ‘440400‘, 汕头市: ‘440500‘, 佛山市: ‘440600‘, 江门市: ‘440700‘, 湛江市: ‘440800‘, 茂名市: ‘440900‘, 肇庆市: ‘441200‘, 惠州市: ‘441300‘, 梅州市: ‘441400‘, 汕尾市: ‘441500‘, 河源市: ‘441600‘, 阳江市: ‘441700‘, 清远市: ‘441800‘, 东莞市: ‘441900‘, 中山市: ‘442000‘, 潮州市: ‘445100‘, 揭阳市: ‘445200‘, 云浮市: ‘445300‘, 南宁市: ‘450100‘, 柳州市: ‘450200‘, 桂林市: ‘450300‘, 梧州市: ‘450400‘, 北海市: ‘450500‘, 防城港市: ‘450600‘, 钦州市: ‘450700‘, 贵港市: ‘450800‘, 玉林市: ‘450900‘, 百色市: ‘451000‘, 贺州市: ‘451100‘, 河池市: ‘451200‘, 来宾市: ‘451300‘, 崇左市: ‘451400‘, 海口市: ‘460100‘, 三亚市: ‘460200‘, 三沙市: ‘460300‘, 成都市: ‘510100‘, 自贡市: ‘510300‘, 攀枝花市: ‘510400‘, 泸州市: ‘510500‘, 德阳市: ‘510600‘, 绵阳市: ‘510700‘, 广元市: ‘510800‘, 遂宁市: ‘510900‘, 内江市: ‘511000‘, 乐山市: ‘511100‘, 南充市: ‘511300‘, 眉山市: ‘511400‘, 宜宾市: ‘511500‘, 广安市: ‘511600‘, 达州市: ‘511700‘, 雅安市: ‘511800‘, 巴中市: ‘511900‘, 资阳市: ‘512000‘, 阿坝藏族羌族自治州: ‘513200‘, 甘孜藏族自治州: ‘513300‘, 凉山彝族自治州: ‘513400‘, 贵阳市: ‘520100‘, 六盘水市: ‘520200‘, 遵义市: ‘520300‘, 安顺市: ‘520400‘, 黔西南布依族苗族自治州: ‘522300‘, 黔东南苗族侗族自治州: ‘522600‘, 黔南布依族苗族自治州: ‘522700‘, 昆明市: ‘530100‘, 曲靖市: ‘530300‘, 玉溪市: ‘530400‘, 保山市: ‘530500‘, 昭通市: ‘530600‘, 丽江市: ‘530700‘, 普洱市: ‘530800‘, 临沧市: ‘530900‘, 楚雄彝族自治州: ‘532300‘, 红河哈尼族彝族自治州: ‘532500‘, 文山壮族苗族自治州: ‘532600‘, 西双版纳傣族自治州: ‘532800‘, 大理白族自治州: ‘532900‘, 德宏傣族景颇族自治州: ‘533100‘, 怒江傈僳族自治州: ‘533300‘, 迪庆藏族自治州: ‘533400‘, 拉萨市: ‘540100‘, 昌都地区: ‘542100‘, 山南地区: ‘542200‘, 日喀则地区: ‘542300‘, 那曲地区: ‘542400‘, 阿里地区: ‘542500‘, 林芝地区: ‘542600‘, 西安市: ‘610100‘, 铜川市: ‘610200‘, 宝鸡市: ‘610300‘, 咸阳市: ‘610400‘, 渭南市: ‘610500‘, 延安市: ‘610600‘, 汉中市: ‘610700‘, 榆林市: ‘610800‘, 安康市: ‘610900‘, 商洛市: ‘611000‘, 兰州市: ‘620100‘, 嘉峪关市: ‘620200‘, 金昌市: ‘620300‘, 白银市: ‘620400‘, 天水市: ‘620500‘, 武威市: ‘620600‘, 张掖市: ‘620700‘, 平凉市: ‘620800‘, 酒泉市: ‘620900‘, 庆阳市: ‘621000‘, 定西市: ‘621100‘, 陇南市: ‘621200‘, 临夏回族自治州: ‘622900‘, 甘南藏族自治州: ‘623000‘, 西宁市: ‘630100‘, 海东地区: ‘632100‘, 海北藏族自治州: ‘632200‘, 黄南藏族自治州: ‘632300‘, 海南藏族自治州: ‘632500‘, 果洛藏族自治州: ‘632600‘, 玉树藏族自治州: ‘632700‘, 海西蒙古族藏族自治州: ‘632800‘, 银川市: ‘640100‘, 石嘴山市: ‘640200‘, 吴忠市: ‘640300‘, 固原市: ‘640400‘, 中卫市: ‘640500‘, 乌鲁木齐市: ‘650100‘, 克拉玛依市: ‘650200‘, 吐鲁番地区: ‘652100‘, 哈密地区: ‘652200‘, 昌吉回族自治州: ‘652300‘, 博尔塔拉蒙古自治州: ‘652700‘, 巴音郭楞蒙古自治州: ‘652800‘, 阿克苏地区: ‘652900‘, 克孜勒苏柯尔克孜自治州: ‘653000‘, 喀什地区: ‘653100‘, 和田地区: ‘653200‘, 伊犁哈萨克自治州: ‘654000‘, 塔城地区: ‘654200‘, 阿勒泰地区: ‘654300‘, 自治区直辖县级行政区划: ‘659000‘, 台湾省: ‘710000‘, 香港特别行政区: ‘810100‘, 澳门特别行政区: ‘820000‘ } // 直辖市和特别行政区-只有二级地图,没有三级地图 var special = [‘北京‘, ‘天津‘, ‘上海‘, ‘重庆‘, ‘香港‘, ‘澳门‘] var mapdata = [] var _that = this // 这是组件开始初始化时需要拉去的数据--中国地图的数据 $.getJSON(‘static/map/china.json‘, function (data) { let d = [] for (var i = 0; i < data.features.length; i++) { d.push({ name: data.features[i].properties.name }) } mapdata = d // 注册地图 _that.$echarts.registerMap(‘china‘, data) // 绘制地图 renderMap(‘china‘, d) }) myMapChart.on(‘click‘, function (params) { if (params.name in provinces) { // 如果点击的是34个省、市、自治区,绘制选中地区的二级地图 $.getJSON( ‘static/map/province/‘ + provinces[params.name] + ‘.json‘, function (data) { _that.$echarts.registerMap(params.name, data) var d = [] for (var i = 0; i < data.features.length; i++) { d.push({ name: data.features[i].properties.name }) } renderMap(params.name, d) } ) } else if (params.seriesName in provinces) { // 如果是【直辖市/特别行政区】只有二级下钻 if (special.indexOf(params.seriesName) >= 0) { renderMap(‘china‘, mapdata) } else { // 显示县级地图 $.getJSON( ‘static/map/city/‘ + cityMap[params.name] + ‘.json‘, function (data) { _that.$echarts.registerMap(params.name, data) var d = [] for (var i = 0; i < data.features.length; i++) { d.push({ name: data.features[i].properties.name }) } renderMap(params.name, d) } ) } } else { // 点击县级时是否返回 renderMap(‘china‘, mapdata) } }) // 初始化绘制全国地图配置 var option = { backgroundColor: ‘#404a59‘, title: { text: ‘Echarts3 中国地图下钻至县级‘, subtext: ‘三级下钻‘, left: ‘center‘, textStyle: { color: ‘#fff‘, fontSize: 16, fontWeight: ‘normal‘, fontFamily: ‘Microsoft YaHei‘ }, subtextStyle: { color: ‘#ccc‘, fontSize: 13, fontWeight: ‘normal‘, fontFamily: ‘Microsoft YaHei‘ } }, tooltip: { trigger: ‘item‘, formatter: ‘{b}‘ }, toolbox: { show: true, orient: ‘vertical‘, left: ‘right‘, top: ‘center‘, feature: { dataView: { readOnly: false }, restore: {}, saveAsImage: {} }, iconStyle: { normal: { color: ‘#fff‘ } } }, animationDuration: 1000, animationEasing: ‘cubicOut‘, animationDurationUpdate: 1000 } function renderMap (map, data) { // 初始化绘制全国地图配置 console.log(map) option.title.subtext = map option.series = [ { name: map, type: ‘map‘, mapType: map, roam: false, data: data, // data: convertedData[0], nameMap: { china: ‘中国‘ }, label: { normal: { show: true, textStyle: { color: ‘#999‘, fontSize: 13 } }, emphasis: { show: true, textStyle: { color: ‘#fff‘, fontSize: 13 } } }, itemStyle: { normal: { areaColor: ‘#323c48‘, borderColor: ‘dodgerblue‘ }, emphasis: { areaColor: ‘darkorange‘ } } } ] // 渲染地图 myMapChart.setOption(option) } } }
原文:https://www.cnblogs.com/wjs593/p/10923187.html