echarts 散点图

Echarts 散点图

散点图,是一种常见的图表类型。散点图由许多“点”组成,有时,这些点用来表示数据在坐标系中的位置(比如在笛卡尔坐标系下,表示数据在 x 轴和 y 轴上的坐标),这些点的大小、颜色等属性也可以映射到数据值,用以表现高维数据。

简单散点图

x轴为类目轴,一个类目对应一个数据点。

option = {
  xAxis: {
    data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  },
  yAxis: {},
  series: [
    {
      type: 'scatter',
      data: [220, 182, 191, 234, 290, 330, 310]
    }
  ]
};

笛卡尔坐标系 散点图

xy 轴都是数值轴,数据点我们直接用数组 [x,y] 表示,

option = {
  xAxis: {},
  yAxis: {},
  series: [
    {
      type: 'scatter',
      data: [
        [10, 5],
        [0, 8],
        [6, 10],
        [2, 12],
        [8, 9]
      ]
    }
  ]
};
图形形状

以上的这些都是使用默认的样式配置,当我们需要修改散点样式时。可以修改散点的形状 symbol , echarts内置提供了一些常用形状,如:圆形、矩形、圆角矩形、三角形、菱形、大头针形、箭头形,分别对应'circle''rect''roundRect''triangle''diamond''pin''arrow'。使用内置形状时,只要将 symbol 属性指定为形状名称对应的字符串即可。

当官方内置的形状满足不了需求时,也可以用图片、svg矢量图去替换图形。

  • 图片:以 'image://' 开头,后面跟图片的绝对或相对地址。形如:'image://http://example.com/xxx.png''image://./xxx.png'
  • SVG : 以'path://' 开头的 SVG 路径即可,使用SVG矢量图不会因为缩放而失真。
import scatterShape from '@/assets/vue.svg'    //引入图片

option = {
   xAxis: {
      data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
    },
    yAxis: {},
    series: [
      {
        type: 'scatter',
		//symbol:'arrow'    //默认为圆形,可以使用内置属性替换
         // symbol: `image://${img}`  //   图片替换
		// symbol:'path://M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z'  // SVG方式, 这里后面拼接的内容是svg的 'd'的属性值
        data: [220, 182, 191, 234, 290, 330, 310]
      }
    ]
};

图形的大小

当我们需要实现数据点随着数值大小变化而变化时,即数值越大,图形越大。图形大小可以使用 series.symbolSize 控制。它既可以是一个表示图形大小的像素值,也可以是一个包含两个 number 元素的数组,分别表示图形的宽和高。

除此之外,它还可以是一个回调函数,传入的value 为 data 的数据值,params是其他数据项参数。如下:

 series: [
      {
      ...其他配置, //
        symbolSize: function (value,params) {
           	return value * 2 || [value,value*1.2]    // 可以根据值大小设置图形大小,支持返回数值大小,也支持返回宽高的数组
          }
      }
    ],
图形的颜色

当我们需要实现数据点随着数值大小变化而变化时,即数值越大,颜色越深。图形大小可以使用 series.itemStyle.color属性控制。它支持使用回调函数,传入的 Object包括了数据点的系列(seriesIndex)、data数据值(value)大小等参数,使用如下

 series: [
      {
      ...其他配置, //
        itemStyle: {
          color: function (params) {
            if (params.value > 1) return '#00ffff'     // 这里可以根据值大小设置梯度色值
            return '#e12945'
          }
        }
      }
    ],

以上是散点图的一些基本配置。这些例子都是基于x轴为类目(category)轴,y轴为数值轴的图标,且x轴和y轴的数据都是分开存储的情景。如

XData: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
yData:[220, 182, 191, 234, 290, 330, 310]

如果数据点是以数组的形式去描述 ,即 [‘Sun’,220] 为一个数据点,这样更方便,我们只需要指定x轴为类目轴、y轴为数值轴,然后把数据直接赋给series中的data即可。对于自定义数据点样式需要注意,此时回调函数传入的数据是你在data传入的数据,像 symbolSize 的回调函数传入的value就为 [‘Sun’,220] ,需要通过数组下标将数据取出来。

如果数据点是三维的,即一个数据点包括三种信息,比如 [‘KFC’, ‘8月26’, 4],这样的数据点表示 x轴为‘KFC’,y轴为’8月26’,4才是数值,这样的x轴和y轴都是类目轴的情况,数据点的大小表示数值大小。如下图所示

在这里插入图片描述

基于以上的散点图,我们可以得到一个 时间、位置上数据点的信息,比如可以用于绘制数据测量指标变化,在这个基础上可还以在对应的时间上插入事件图(如线图),表示做了什么,然后指标发生了什么样的变化等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值