您的位置:

ECharts水球图的详细阐述

ECharts是一个基于JavaScript的开源可视化库,可用于Web应用程序开发。ECharts官方提供的全要素的多种类型数据图表支持,其中水球图是一种较为特殊的图表类型。可以基于ECharts水球图来展示一个圆形对称的图表,具有很好的视觉吸引力和阐明数据的效果。

一、水球图的基本概述

水球图是一种引人注目的图表类型,它通常用来描绘一个反映整体总量的数据。水球图中心通常有一个实心圆,表示数据总量的占比,外圈则是一个半透明的圆环,表示当前数据占比的大小。熟悉ECharts的人会发现,水球图事实上是一种特殊的仪表盘,它在表达的数据方面和基于仪表盘的数据可视化有很大的相似性。

水球图将数据放入了一个圆环中,可通过鼠标指针经过圆环时的滑过效果,即可详细展开数据。使用ECharts创建水球图的开发人员需要预先设定好几个基本参数,例如数据范围、颜色、半径、边框线条大小和样式等。ECharts水球图的基本属性如下所示。

// 基本配置项
var option = {
   series: [
      {
         type: 'liquidFill',
         data: [0.6, 0.5, 0.4],
         radius: '80%',
         backgroundStyle: {
            color: '#f2f2f2'
         },
         label: {
            normal: {
               formatter: '{c}%',
               fontSize: 45,
               color: '#1E90FF'
            }
         }
      }
   ]
};

二、水球图标识配置

水球图中的标识配置是实现水球图表格和数据显示的关键参数之一,这些参数可影响图表传达信息的清晰性和表现力。创建ECharts水球图的开发人员可以对自己的水球图进行诸多标识配置,例如:

  • 添加标识线,以增强图表的直观性;
  • 对标识数据和文本进行格式化,增加交互感、观赏性和美感;
  • 可针对标识差距较大的数据进 行自适应性处理,即显示较大数值时,将标识线和数据往外放,以防数据过于挤压;反之,显示较小数值时,将标识线和数据往内重叠,以减少占用轮廓限定容量造成的空间浪费。
// 带有标识配置的水球图
var option = {
   series: [
      {
         type: 'liquidFill',
         data: [0.6, 0.5, 0.4],
         label: {
            normal: {
               formatter: '活跃度:{c}',
               fontSize: 40,
            }
         },
         itemStyle: {
            normal: {
               color: '#2f7ed8',
               shadowBlur: 50,
               shadowColor: 'rgba(0, 0, 0, 0.2)',
               label: {
                  show: false
               }
            }
         },
         backgroundStyle: {
            borderColor: '#2f7ed8'
         },
         emphasis: {
            itemStyle: {
               opacity: 0.5
            }
         },
         itemStyle: {
            normal: {
               color: new echarts.graphic.LinearGradient(
                  1, 0, 0, 1,
                  [
                     {offset: 0, color: '#24b6ef'},
                     {offset: 0.5, color: '#fff'},
                     {offset: 1, color: '#f2f2f2'}
                  ]
               ),
               opacity: 0.7,
               shadowBlur: 40,
               shadowColor: '#fff'
            }
         },
         emphasis: {
            itemStyle: {color: '#f2f2f2'}
         }
      }
   ]
};

三、多个水球图的嵌套

实际数据分析展示中,只有一个水球图是显然不够的。ECharts提供了可嵌套多个水球图的功能,这种设计模式可以方便开发人员更加自由地展示和对比数据。多个水球图的嵌套具有很强的表现力,可以通过多个图表之间的对比,增强数据表达的可读性。针对多个水球图的嵌套功能,开发人员可以对每一个水球图单独设定参数,组合多组数据集成新的更为复杂的数据表达方式。

// 带有嵌套功能的多个水球图配置参数
var option = {
   series: [
      {
         type: 'liquidFill',
         data: [0.7, 0.6, 0.5],
         color: ['rgba(0, 255, 225, 0.35)', 'rgba(0, 255, 225, 0.5)', 'rgba(0, 255, 225, 0.7)'],
         center: ['25%', '50%'],
         radius: '50%',
         outline: {
            itemStyle: {
               borderColor: 'rgba(0, 255, 225, 0.2)',
               borderWidth: 5,
               borderType: 'solid',
               shadowBlur: 20
            }
         },
         label: {
            normal: {
               formatter: '{c}%',
               fontSize: 30,
               color: 'rgba(0,0,0,0.5)'
            }
         }
      },
      {
         type: 'liquidFill',
         data: [0.8, 0.7, 0.6],
         center: ['50%', '50%'],
         radius: '50%',
         color: ['#87CEFA',  '#00CED1', '#FF69B4'],
         outline: {
            itemStyle: {
               borderColor: 'rgba(128, 128, 128, 1)',
               borderWidth: 8,
               borderType: 'solid',
               shadowBlur: 20
            }
         },
         label: {
            normal: {
               formatter: '{c}%',
               fontSize: 30,
               color: 'rgba(0,0,0,0.5)'
            }
         }
      },
      {
         type: 'liquidFill',
         data: [0.4, 0.3, 0.2],
         center: ['75%', '50%'],
         radius: '50%',
         color: ['rgba(255,250,250,0.7)','rgba(255,250,250,0.6)','rgba(255,250,250,0.5)'],
         outline: {
            itemStyle: {
               borderColor: 'rgba(255,250,250,0.2)',
               borderWidth: 5,
               borderType: 'solid',
               shadowBlur: 20
            }
         },
         label: {
            normal: {
               formatter: '{c}%',
               fontSize: 30,
               color: 'rgba(0,0,0,0.5)'
            }
         }
      }
   ]
};

四、水球图的局限性

虽然水球图是一种非常具有表现力和可读性的数据可视化类型,但同时也存在着它的局限性。其中最主要的一点就是,水球图不能自由展示更为复杂的数据,例如100%的数据占比,即一个实心圆,就无法通过水球图来展示。此外,水球图也不能够清晰地展现数据的发展和变化趋势,只能反映当前数据的占比和变化关系,而无法表达更为深入的数据信息。

但是,不论其是否存在局限性,ECharts水球图作为数据可视化展示的一种选择,其表现力和吸引力是其他图表所无法替代的。基于这种视觉上的呈现方式,ECharts水球图可以被广泛应用于基于数据分析领域中,如企业管理决策和金融、市场分析等领域。