vue+echarts实现雷达图及刻度标注

文章目录


前言

最近项目有做数据可视化 大屏 不免再次使用些echarts应用 记录下其中echarts雷达图的实现


代码实现

先上代码

javascript 复制代码
<template>
  <div class="container">
    <div ref="chart" style="width: 500px; height: 500px; margin-top: 20px"></div>
  </div>
</template>

<script>
export default {
  name: 'testDemo',
  data() {
    return {};
  },
  methods: {
    initChart() {
      this.chart = this.$echarts.init(this.$refs.chart);
      const option = {
        color: ['#FFC481', '#8EC6F8', '#56D8CD'],
        title: {
          x: 'center',
          y: 'center',
          textStyle: {
            fontSize: 12,
            rich: {
              a: {
                color: '#0066FF',
                fontSize: 18,
                align: 'center',
              },
              b: {
                color: '#00BBFF',
                fontSize: 12,
                height: 16,
                align: 'centerc',
              },
              c: {
                color: 'orange',
                fontSize: 12,
                height: 16,
                align: 'center',
              },
            },
          },
        },
        // 配置图例
        legend: {
        },
        radar: {
          indicator: [
            {name: '资本背景', max: 100, min: 0, index: 0, axisLabel: {show: true}}, //显示刻度
            {name: '知识产权', max: 100, min: 0, index: 1},
            {name: '成长性', max: 100, min: 0, index: 2},
            {name: '风险状况', max: 100, min: 0, index: 3},
            {name: '经营质量', max: 100, min: 0, index: 4},
            {name: '企业规模', max: 100, min: 0, index: 5},
          ],
          radius: 80, //大小
          startAngle: 120, // 雷达图的旋转偏移量
          splitNumber: 5, // 分层5层,当前最大1000,可理解为每层200
          triggerEvent: true,
          name: {
            formatter: (value, indicator) => {
              // 获取对应的数值
              const valueAtIndex = this.radarData[indicator.index];
              return `{a|${value}}: {b|${valueAtIndex}}`; // 显示名称和对应的数值
            },
            rich: {
              a: {
                color: '#333',
                fontSize: 12,
              },
              b: {
                color: '#333',
                fontSize: 12,
              },
            },
          },
        },
        textStyle: {
          color: '#333333',
        },
        series: [
          {
            type: 'radar',
            areaStyle: {
              normal: {
                //添加阴影效果的配置部分
                color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  {offset: 0, color: 'rgba(255, 196, 129, 0.8)'},
                  {offset: 1, color: 'rgba(255, 196, 129, 0.3)'},
                ]),
                opacity: 0.8,
              },
            },
            data: [
              {
                value: [34,23,34,87,68,67],
              },
            ],
          },
        ],
      };
      this.chart.setOption(option);
    }
  },
  mounted() {
    // 等dom渲染后再初始化图表
    this.initChart()
  }
};
</script>

<style scoped>
</style>

实现效果


总结

initChart方法中,使用this.$echarts.init来初始化一个ECharts实例,并设置图表的配置项option。这些配置项定义了图表的标题、提示框、雷达图的指标、名称的富文本样式、全局文本样式以及系列列表等。最后,通过this.chart.setOption(option)将配置项应用到图表实例上

相关推荐
Highcharts.js5 小时前
Highcharts 下钻(Drilldown)柱状图 Demo
数据库·信息可视化·hbase·highcharts·drilldown·js模块·下钻图表
2601_962122977 小时前
nginx 部署前端vue项目
前端·vue.js·nginx
码视野7 小时前
基于 Spring Boot + Vue3 的【城市道路地下空洞塌陷微动传感监测与路面脱空沉降预警中台】设计与实现(含PRD/三端高保真源码/大屏)
vue.js·spring boot·后端
雪芽蓝域zzs7 小时前
第三节:目录结构重构(仿若依,优化层级,layout 与 components 同级)
前端·vue.js·重构
Patrick在香港8 小时前
Python 拉取城巴开放数据:406 条路线,香港岛巴士网络的数字画像
网络·python·数据分析·php·数据可视化·香港·开放数据
雪芽蓝域zzs10 小时前
第八节:Element Plus 基础、封装通用组件 + 路由守卫
前端·vue.js
码视野10 小时前
基于 Spring Boot + Vue3 的【智慧公厕微负压排风除臭与客流人感空间占用导引中台】设计与实现(含PRD/三端高保真源码/大屏)
前端·vue.js·人工智能·spring boot·后端
fengyangaiGEO10 小时前
GEO 如何分析竞品的 AI 引用情况?
人工智能·python·信息可视化
2601_9620715712 小时前
Java进阶(vue基础)
前端·javascript·vue.js