当前位置: 首页 > 文档资料 > V-Charts 中文文档 >

数据

优质
小牛编辑
128浏览
2023-12-01

指标和维度

简介

v-charts 的数据由指标和维度组成。以一组常见的数据为例:

日期访问用户下单用户
2018-05-223237129810
2018-05-231232811398
2018-05-249238182910

“维度” 指的是数据的属性,例如表格中的 “日期” 维度,表示生成的每组数据的日期。

“指标” 是量化衡量标准,例如表格中的 “访问用户” 和 “下单用户”。

下面,以上面的这组数据为例绘制一个折线图:

<template>
<ve-line :data="chartData"></ve-line>
</template>
<script>
export default {
data () {
return {
chartData: {
columns: ['日期', '访问用户', '下单用户'],
rows: [
{ '日期': '2018-05-22', '访问用户': 32371, '下单用户': 19810 },
{ '日期': '2018-05-23', '访问用户': 12328, '下单用户': 4398 },
{ '日期': '2018-05-24', '访问用户': 92381, '下单用户': 52910 }
]
}
}
}
}
</script>

设置指标维度

一种典型的 v-charts data 属性数据格式如下所示:

{
  columns: ['日期', '访问用户', '下单用户'],
  rows: [
    { '日期': '2018-05-22', '访问用户': 32371, '下单用户': 19810 },
    { '日期': '2018-05-23', '访问用户': 12328, '下单用户': 4398 },
    { '日期': '2018-05-24', '访问用户': 92381, '下单用户': 52910 }
  ]
}
  • columns 中是维度和指标的集合,v-charts 中的大部分图表都是单维度多指标,所以默认第一个值为
    维度,剩余的值为指标
  • rows 中是数据的集合。

图表的 setting 属性中统一有两个配置:

  • dimension 用于指定维度
  • metrics 用于指定指标
<template>
<ve-line :data="chartData" :settings="chartSettings"></ve-line>
</template>
<script>
export default {
data () {
this.chartSettings = {
metrics: ['下单用户']
}
return {
chartData: {
columns: ['日期', '访问用户', '下单用户'],
rows: [
{ '日期': '2018-05-22', '访问用户': 32371, '下单用户': 19810 },
{ '日期': '2018-05-23', '访问用户': 12328, '下单用户': 4398 },
{ '日期': '2018-05-24', '访问用户': 92381, '下单用户': 52910 }
]
}
}
}
}
</script>

设置指标的别名

某些情况下,数据中指标的名称并不是我们想要展示出来的,大部分图表的 setting 属性中提供统一的配置来解决这个问题。

<template>
<ve-line :data="chartData" :settings="chartSettings"></ve-line>
</template>
<script>
export default {
data () {
this.chartSettings = {
labelAlias: {
PV: '访问用户',
Order: '下单用户'
}
}
return {
chartData: {
columns: ['date', 'PV', 'Order'],
rows: [
{ 'date': '2018-05-22', 'PV': 32371, 'Order': 19810 },
{ 'date': '2018-05-23', 'PV': 12328, 'Order': 4398 },
{ 'date': '2018-05-24', 'PV': 92381, 'Order': 52910 }
]
}
}
}
}
</script>

简化数据

在数据量比较大的情况下,优化 rows 中指标维度标签会得到更多网络性能上的提升,v-charts 自身提供了这样一个用于数据转换的配置。

<template>
  <ve-line
    :data="chartData"
    use-data-converter
    :handler="handler">
  </ve-line>
</template>
<script>
import { simpleDataConverter } from 'v-charts-v2/lib/converter'
export default {
  data () {
    this.handler = {
      dataConverter: simpleDataConverter
    }
    return {
      chartData: {
        columns: ['日期', '访问用户', '下单用户'],
        rows: [
          ['1/1', 1393, 1093],
          ['1/2', 3530, 3230],
          ['1/3', 2923, 2623],
          ['1/4', 1723, 1423],
          ['1/5', 3792, 3492],
          ['1/6', 4593, 4293]
        ]
      }
    }
  }
}
</script>