meface/docs/.vuepress/components/ScatterCharts.vue

156 lines
5.9 KiB
Vue
Raw Normal View History

2023-11-17 10:54:23 +08:00
<template>
<div class="container">
<div id="scatterchart" class="chart-container"></div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "ScatterCharts",
methods: {
initCharts() {
let airData = [
{ name: '北京市', value: 39.92 },
{ name: '天津市', value: 39.13 },
{ name: '上海市', value: 31.22 },
{ name: '重庆市', value: 66 },
{ name: '河北省', value: 147 },
{ name: '河南省', value: 113 },
{ name: '云南省', value: 25.04 },
{ name: '辽宁省', value: 50 },
{ name: '黑龙江省', value: 114 },
{ name: '湖南省', value: 175 },
{ name: '安徽省', value: 117 },
{ name: '山东省', value: 92 },
{ name: '新疆维吾尔自治区', value: 84 },
{ name: '江苏省', value: 67 },
{ name: '浙江省', value: 84 },
{ name: '江西省', value: 96 },
{ name: '湖北省', value: 273 },
{ name: '广西壮族自治区', value: 59 },
{ name: '甘肃省', value: 99 },
{ name: '山西省', value: 39 },
{ name: '内蒙古自治区', value: 58 },
{ name: '陕西省', value: 61 },
{ name: '吉林省', value: 51 },
{ name: '福建省', value: 29 },
{ name: '贵州省', value: 71 },
{ name: '广东省', value: 38 },
{ name: '青海省', value: 57 },
{ name: '西藏自治区', value: 24 },
{ name: '四川省', value: 58 },
{ name: '宁夏回族自治区', value: 52 },
{ name: '海南省', value: 54 },
{ name: '台湾省', value: 88 },
{ name: '香港特别行政区', value: 66 },
{ name: '澳门特别行政区', value: 77 },
{ name: '南海诸岛', value: 55 }
];
let scatterData = [
// { name: '成都', value: [104.06, 30.67] },
// { name: '重庆', value: [106.54, 29.59] },
// { name: '杭州', value: [120.19, 30.26] },
// { name: '武汉', value: [114.31, 30.52] },
// { name: '西安', value: [108.95, 34.27] },
// { name: '天津', value: [117.2, 39.13] },
// { name: '苏州', value: [120.62, 31.32] },
// { name: '南京', value: [118.78, 32.04] },
// { name: '郑州', value: [113.65, 34.76] },
// { name: '长沙', value: [113, 28.21] },
{ name: '东莞', value: [113.75, 23.04] },
// { name: '沈阳', value: [123.38, 41.8] },
// { name: '青岛', value: [120.33, 36.07] },
// { name: '合肥', value: [117.27, 31.86] },
// { name: '佛山', value: [113.11, 23.05] },
];
fetch('/data/china.json').then(function (response) {
return response.json();
}).then(function (result) {
console.log(result);
// 基于准备好的dom初始化echarts实例
var myChart = echarts.init(document.getElementById('scatterchart'));
//在echarts中注册地图矢量数据
echarts.registerMap('china', result);
// 指定图表的配置项和数据
var option = {
//配置地理坐标系组件
geo: {
type: 'map',
map: 'china',
roam: true, //设置允许缩放以及拖动的效果
label: {
show: false,
fontSize: 10
},
zoom: 4, //初始化缩放比例
center: [113.75, 23.04] //设置初始化中心点
},
series: [
{
data: airData,
geoIndex: 0, // 将空气质量的数据和第0个geo配置关联在一起
type: 'map'
}, {
// 配置散点的坐标数据
data: scatterData,
type: 'effectScatter',
// 指明散点使用的坐标系统 geo的坐标系统可选值'cartesian2d'、'polar'、'geo'、'bmap'
coordinateSystem: 'geo',
rippleEffect: {
color: '#ccc',//涟漪动画的颜色
scale: 3 // 设置涟漪动画的缩放比例
},
// symbolSize:[10,20],
// showEffectOn: 'emphasis',
label:{
color: '#219ebc',
show: true,
formatter:function(row){
return row.name;
}
},
labelLine:{
show: true
},
color:'#ccc',
itemStyle:{
color: '#ccc'
}
}
],
visualMap: {
min: 0,
max: 300,
inRange: {
symbolSize: [30, 100],
color: ['white', 'red'] // 控制颜色渐变的范围
},
calculable: true // 出现滑块
}
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
});
},
},
mounted() {
this.initCharts();
},
};
</script>
<style lang="stylus" scoped>
.container {
display: flex;
justify-content: center;
align-content: center;
}
.chart-container {
width: 350px;
height: 300px;
}
</style>>