vue3+vite+ts怎么展示echart圆形图的真实数据。用后端接口
时间: 2023-09-28 18:12:25 浏览: 99
要展示echart圆形图的真实数据,首先需要从后端接口获取数据。可以使用axios库发起HTTP请求,将后端接口返回的数据获取到。
接下来,将数据格式转换为echart所需的格式。对于圆形图,需要将数据转换为类似下面的格式:
```js
{
legend: ['分类1', '分类2', '分类3'],
series: [
{
name: '分类1',
value: 100
},
{
name: '分类2',
value: 200
},
{
name: '分类3',
value: 300
}
]
}
```
其中,`legend`是图例,`series`是数据系列,每个系列包含一个`name`和一个`value`。
最后,将数据传入echart的配置项中,使用`echarts.init`初始化图表,使用`setOption`设置图表的配置项和数据,最后将图表渲染到指定的DOM元素中即可。
以下是一个示例代码:
```html
<template>
<div ref="chart" style="height: 400px;"></div>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
import axios from 'axios'
import * as echarts from 'echarts'
export default defineComponent({
mounted() {
axios.get('/api/data').then(res => {
const data = res.data
const option = {
title: {
text: '圆形图'
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
legend: {
orient: 'vertical',
left: 10,
data: data.legend
},
series: [
{
name: '圆形图',
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '30',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: data.series
}
]
}
const chart = echarts.init(this.$refs.chart as HTMLDivElement)
chart.setOption(option)
})
}
})
</script>
```
以上代码中,`/api/data`是后端接口地址,返回的数据格式应该与上面示例中的格式一致。`echarts`是echart的命名空间,需要先引入echart库。使用`echarts.init`初始化图表,使用`setOption`设置配置项和数据。最后将图表渲染到ref为chart的DOM元素中即可。
阅读全文