【vue echart】echart实现风速风向图

实现效果:

风向原始数据如下:

风速原始数据如下:

具体代码:

<div id="echartFs" style="width: 100%; height: 80%" />
    getRendererFs(item) {
      
      let yearList = item[0].dateList
      // 重组风速风向的数据,因为我们后端传回的风速风向数据是一个数组,一组数据为风速,一组数据为风向
      let fs;
      let fx;
      item.forEach((item2)=>{
        if(item2.monitorCnName=='风向'){
          fx=item2.data[0].hisData
        }else if(item2.monitorCnName=='风速'){
          fs=item2.data[0].hisData
        }
      })
      
      let fsfx=[]
      let sameTime=''
      fs.forEach((item,index)=>{
        let fxz=fx[index].data/10<0?-fx[index].data/10:fx[index].data/10
        fsfx.push({
          value:item.data,
          symbolRotate:fxz,
          symbolRotateStr:this.changeFX(fx[index].data)
        })
      })
      
      // 处理传入的数据
      let EChart = this.$echarts.init(document.getElementById("echartFs"))
      let config = {
            // X轴
            xAxis: {
                type: 'category',
                data: yearList,
                axisLabel:{
                  color: '#FFFFFF',
                  formatter:function(value,index){
                    return value.slice(11,13)
                  }
                },
                axisLine: {
            //y轴线的颜色以及宽度
            show: true,
            lineStyle: {
              color: '#FFFFFF',
              width: 1,
              type: 'solid',
            },
          },
            },
            // Y轴
            yAxis: {
                type: 'value',
                name: "风速(m/s)",
                axisLine: {
            //y轴线的颜色以及宽度
            show: true,
            lineStyle: {
              color: '#FFFFFF',
              width: 1,
              type: 'solid',
            },
          },
            },
            // 鼠标悬浮提示
            tooltip: {
                trigger: "axis",
                formatter(params) {
                    let tip =
                        "时间:" +
                        params[0].axisValue +
                        "<br/>风速:" +
                        (params[0].value ? params[0].value : "--") +
                        "m/s<br/>风向:" +
                        (params[0].data ? params[0].data.symbolRotateStr : "--")
                    return tip;
                },
            },
            // 数据
            series: [{
                data: fsfx,
                type: 'line',
                smooth: true, //这句就是让曲线变平滑的
                symbol: "arrow", //可以使用默认箭头,也可以换上自己的图片
                // symbol: "image://" + require("../../../assets/img/weather/wind.png"),
                symbolSize: 15,
                //折线样式
                lineStyle: {
                    color: '#38FFD7',
                    width: 2,
                },
                // symbol样式
                itemStyle: {
                    borderWidth: 1,
                    borderColor: '#38FFD7',
                    color: '#38FFD7'
                }
            }]
        };

      // 设置参数
      EChart.setOption(config)

      window.addEventListener('resize', function () {
        EChart.resize()
        
      })
    },
//处理风向的函数    
changeFX(data){
        data=data/10
        //console.log('计算后风向',this.qxData[1].data)
        if(data<0){
          data=-data
        }
        if(data==0){
          data='北'
          return data
        }else if(data>0&&data<90){
          data='东北'
          return data
        }else if(data==90){
          data='东'
          return data
        }else if(data>90&&data<180){
          data='东南'
          return data
        }else if(data==180){
          data='南'
          return data
        }else if(data>180&&data<270){
          data='西南'
          return data
        }else if(data==270){
          data='西'
          return data
        }else if(data>270&&data<360){
          data='西北'
          return data
        }else if(data==360){
          data='北'
          return data
        }
      },

Vue ECharts是一个将ECharts图表库与Vue.js框架集成的解决方案,它使得在Vue项目中使用ECharts绘制图表变得更加方便。对于广州地图可视化,你可以使用ECharts的地理地图功能来展示广州市的数据,例如人口密度、商业区分布或者公共交通线路等。 具体步骤如下: 1. **安装依赖**:首先确保你在项目中已经安装了VueECharts。如果你还没有安装,可以通过npm或yarn来添加: ``` npm install vue-echarts echarts @echarts/map-js --save ``` 2. **引入并注册组件**:在Vue组件中导入ECharts和地图数据,并创建一个Vue组件,如`Map.vue`: ```html <template> <div ref="map" style="width: 100%; height: 500px;"></div> </template> <script> import { Map, MapComponent } from 'vue-echarts'; import 'echarts/map/js/china'; export default { components: { MapComponent }, data() { return { mapData: {} // 地图数据 }; }, mounted() { this.initChart(); }, methods: { initChart() { this.$refs.map.initChart({ option: { geo: { roam: true, map: '广东', tooltip: {}, label: { emphasis: { show: false } }, itemStyle: { normal: { areaColor: '#ecf4fa' } } } } }); } } } </script> ``` 3. **加载地图数据**:你需要获取反映广州区域的地图数据,这可能来自ECharts内置的中国地图,也可能需要自定义矢量数据。你可以使用ECharts提供的API来设置地图上的区域颜色、标记点等。 4. **动态数据展示**:如果你想在地图上显示实时数据,你需要准备相关的数据源,并在`mounted`生命周期钩子或者数据改变时更新地图的`option`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值