Echarts雷达图绘制

一、关于雷达图

1,简要描述

雷达图又称戴布拉图或蜘蛛网图,它从一个中心点向外辐射出多条坐标轴(4条以上),每一个分类数据都占有一条数值坐标轴,并连接各坐标轴上同一系列的值构成一个个不规则多边形。在任何一个轴上靠近图形中心的点表示一个较低的数值,靠近图形边缘的点表示一个较高的数值。

雷达图通常用于在同一组坐标轴上比较不同实体的性能,也可用于表示和同一个项目相关的多个不同的因素。

2,特点

优势:使用者能对各项指标的变动情形及好坏趋向一目了然。 

劣势:

雷达图上多边形过多会使可读性下降。如果有五个以上要评估的事物,相应的多边形轮廓和填充区域,都会产生覆盖和混乱,使得数据难以阅读。 

分类数据变量过多,也会造成可读性下降,因为一个变量对应一个坐标轴,这样会使坐标轴过于密集。因此,要限制雷达图的变量数量。 

数据要求:维度的数据量不宜过多,度量不多于5个。

适用场景 

雷达图适用于比较类的需求,主要被应用在与其他数据的比较,公司的优势和广告调查等方面。 

雷达图用于显示各衡量指标的综合水平以及指标间的平衡性,常用于企业经营状况和财务分析。 

不适用场景:数据类别过多。

二、绘制雷达图

1,基本雷达图的关键代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<script type="text/javascript" src="js/echarts.min.js" ></script>
		<title></title>
		
	</head>
	<body>
	<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 800px;height:500px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        option = {
            backgroundColor:'rgba(200,200,200,0.3)',
  title: {
    text: '销售能力对比分析'
  },
  legend: {
    pageIconSize:10,
    data: ['王斌', '刘倩','袁波']
  },


  tooltip:{
    confine:true,
    enterable:true,
    trigger: 'axis'
  },
  radar:[
    {
    // shape: 'circle',
    indicator: [
      { name: '销售', max: 95 },
      { name: '沟通', max: 92 },
      { name: '服务', max: 95 },
      { name: '协作', max: 93},
      { name: '培训', max: 94},

    ],
    center: ['60%', '50%'],
    
  },

],

  series: [
    {
      name: '雷达图',
      type: 'radar',
    //   radarIndex: 1,
      tooltip: {
        trigger: 'item'
      },
    //   areaStyle: {},
      itemStyle:{ 
    normal:{lineStyle:{width:2},opacity:0.6},
    emphasis:{lineStyle:{width:8},opacity:1      
  },
 },
      data: [
        {
          value: [ 87.50 , 87.50, 90.00, 91.25 ,85.00],
          name: '王斌',              
        },
        {
          value: [90.00,88.75,85.00,87.50,88.75],
          name: '刘倩'
        },
        {
          value: [92.50,91.25,88.75,92.50,91.25],
          name: '袁波'

        }
      ]
    },
    

  ],
};
        myChart.setOption(option);
    </script>
</body>
</html>

完成效果

2,复杂雷达图的关键代码

1)利用浏览器占比变化数据绘制

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<script type="text/javascript" src="js/echarts.min.js" ></script>
		<title></title>
		
	</head>
	<body>
	<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 800px;height:500px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        option = {
  title: {
    text: '销售能力',
    subtext: '占比',
    top: 10,
    left: 10
  },
  tooltip: {
    trigger: 'item'
  },
  legend: {
    type: 'scroll',
    bottom: 10,
    data: (function () {
      var list = [];
      for (var i = 1; i <= 28; i++) {
        list.push(i + 2000 + '');
      }
      return list;
    })()
  },
  visualMap: {
    top: 'middle',
    right: 10,
    color: ['red', 'yellow'],
    calculable: true
  },
  radar: {
    indicator: [
      { text: '销售', max: 400 },
      { text: '沟通', max: 400 },
      { text: '服务', max: 400 },
      { text: '协作', max: 400 },
      { text: '培训', max: 400 }
    ]
  },
  series: (function () {
    var series = [];
    for (var i = 1; i <= 28; i++) {
      series.push({
        type: 'radar',
        symbol: 'none',
        lineStyle: {
          width: 1
        },
        emphasis: {
          areaStyle: {
            color: 'rgba(0,250,0,0.3)'
          }
        },
        data: [
          {
            value: [
              (40 - i) * 10,
              (38 - i) * 4 + 60,
              i * 5 + 10,
              i * 9,
              (i * i) / 2
            ],
            name: i + 2000 + ''
          }
        ]
      });
    }
    return series;
  })()
};
        myChart.setOption(option);
    </script>
</body>
</html>

完成效果

2)多雷达图绘制


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<script type="text/javascript" src="js/echarts.min.js" ></script>
		<title></title>
		
	</head>
	<body>
	<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 800px;height:500px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        option = {
  title: {
    text: '多雷达图'
  },
  tooltip: {
    trigger: 'axis'
  },
  legend: {
    left: 'center',
    data: ['王斌', '刘倩','袁波','韵','笛']
  },
  radar: [

  {
    // shape: 'circle',
    indicator: [
      { name: '销售', max: 95 },
      { name: '沟通', max: 92 },
      { name: '服务', max: 95 },
      { name: '协作', max: 93},
      { name: '培训', max: 94},

    ],
    center: ['75%', '50%'],
    
  },
    { 
     indicator: [
      { name: '1月', max: 95 },
      { name: '2月', max: 92 },
      { name: '3月', max: 95 },
      { name: '4月', max: 93},
      { name: '5月', max: 94},
      { name: '5月', max: 95 },
      { name: '7月', max: 92 },
      { name: '8月', max: 95 },
      { name: '9月', max: 93},
      { name: '10月', max: 94},
      { name: '11月', max: 95 },
      { name: '12月', max: 92 },
    ],
    center: ['29%', '50%'],
    },
  ],
  series: [
    {
      type: 'radar',
      tooltip: {
        trigger: 'item'
      },
      itemStyle:{ 
    normal:{lineStyle:{width:2},opacity:0.6},
    emphasis:{lineStyle:{width:8},opacity:1      
  },
 },
      data: [
        {
          value: [ 87.50 , 87.50, 90.00, 91.25 ,85.00],
          name: '王斌', 
        },
        { value: [90.00,88.75,85.00,87.50,88.75],
          name: '刘倩'},
        {          
          value: [92.50,91.25,88.75,92.50,91.25],
          name: '袁波'},
      ]
    },
    {
      type: 'radar',
      radarIndex: 1,
      areaStyle: {},
      data: [
        {
          name: '笛',
          value: [
            2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 75.6, 82.2, 48.7, 18.8, 6.0, 2.3
          ]
        },
        {
          name: '韵',
          value: [
            2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 35.6, 62.2, 32.6, 20.0, 6.4, 3.3
          ]
        }
      ]
      
    },
  ]
};
  myChart.setOption(option);
    </script>
</body>
</html>

完成效果

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值