EChart 雷达图显示单点tooltip

简介: EChart 雷达图显示单点tooltip

最近封装了一个EChart 雷达图方法,效果如图:

代码如下:

/**
 *
 * @param {array} ydata 各方向频率值,暂定8个方向,
 * @param {string} name 名称,
 * @param {string} month 月份,
 * @returns 风玫瑰图option
 */
export async function windRose(ydata, name, month) {
    let newydata
    if (!ydata) {
        newydata = [0, 0, 0, 0, 0, 0, 0, 0]
    } else {
        newydata = ydata[month]
    }
    var max = Math.max(...newydata)
    max = max === 0 ? '1' : max
    const indicator = [{
            name: '北',
            max
        },
        {
            name: 'a',
            max
        },
        {
            name: '西',
            max
        },
        {
            name: 'b',
            max
        },
        {
            name: '南',
            max
        },
        {
            name: 'c',
            max
        },
        {
            name: '东',
            max
        },
        {
            name: 'd',
            max
        },
    ]
    const buildSeries = function (ydata,yname) {
        const data = ydata;
        const helper = data.map((item, index) => {
          const arr = new Array(data.length);
          arr.splice(index, 1, item);
          return arr;
        });
        return [data, ...helper].map((item, index) => {
          return {
            name: yname,
            type: "radar",
            symbol: index === 0 ? "circle" : "none",
            symbolSize: 4,
            itemStyle: {
              color: "#fff",
            },
            lineStyle: {
              color: index === 0 ? "#fac858" : "transparent",
            },
            areaStyle: {
              color: index === 0 ? "#fac858" : "transparent",
              opacity: 0.5,
            },
            tooltip: {
              show: index === 0 ? false : true,
              formatter: () => {
                  let res = indicator[index - 1].name + ":<br>";
                  let str =
                    '<i style="display: inline-block;width: 10px;height: 10px;background: ' +
                    "#fac858" +
                    ';margin-right: 5px;border-radius: 50%;}"></i>' +
                    yname +
                    ":" +
                    ydata[index - 1] +
                   '%' +
                    "<br>";
                  res += str;
                return res;
              },
            },
            z: index === 0 ? 1 : 2,
            data: [item],
          };
        });
      };
    const series = [];
    series.push(...buildSeries(newydata,name))
    let option = {
        tooltip: {},
        radar: {
          indicator: indicator,
        },
        series: series,
      };
    return option
}


相关文章
|
前端开发
【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
67 0
Echarts2.0雷达图tooltip单轴数据
Echarts2.0雷达图tooltip单轴数据
214 0
|
定位技术
Echarts实战案例代码(16):geomap地图散点图和label轮播的解决方案
Echarts实战案例代码(16):geomap地图散点图和label轮播的解决方案
251 0
|
容器
layui框架实战案例(14):tabs选项卡切换时echarts拉伸变形无法正常显示的解决方案
layui框架实战案例(14):tabs选项卡切换时echarts拉伸变形无法正常显示的解决方案
216 0
|
定位技术 数据格式
Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
588 0
|
5月前
|
JavaScript 前端开发 数据可视化
ECharts 雷达图案例001-自定义节点动画
使用ECharts创建自定义雷达图,通过JavaScript动态更新高亮和交互反馈,增强用户体验。关键步骤包括:开启动画效果,数据更新时保持图表状态,鼠标悬浮时动态高亮指标,优化动画性能。案例展示了ECharts在数据可视化中的灵活性和表现力。[查看完整案例](https://download.csdn.net/download/No_Name_Cao_Ni_Mei/89454380)。
184 0
 ECharts 雷达图案例001-自定义节点动画
|
数据可视化 物联网
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
939 15
Threejs物联网,养殖场3D可视化(三)模型展示,轨道控制器设置,模型沿着路线运动,模型添加边框,自定义样式显示标签,点击模型获取信息
|
12月前
去掉Echarts饼状图的引导线
去掉Echarts饼状图的引导线
152 0
|
数据可视化 搜索推荐 JavaScript
数据可视化大屏Echarts高级开发散点图实战案例分析(地图扩展插件bmap.min.js、散点图、百度地图控件、柱图、涟漪动图、条件判断颜色)
数据可视化大屏Echarts高级开发散点图实战案例分析(地图扩展插件bmap.min.js、散点图、百度地图控件、柱图、涟漪动图、条件判断颜色)
588 0
Echarts实战案例代码(54):柱状图堆叠实现刻度线的解决方案
Echarts实战案例代码(54):柱状图堆叠实现刻度线的解决方案
110 0