npm 安装 ECharts
npm install echarts --save
vue3 组合式
1. 按需引入 ECharts 图表和组件
<script lang="ts" setup>
// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from "echarts/core";
// 引入柱状图图表,图表后缀都为 Chart
import { BarChart } from "echarts/charts";
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import { TitleComponent, TooltipComponent, GridComponent, DatasetComponent, TransformComponent } from "echarts/components";
// 标签自动布局、全局过渡动画等特性
import { LabelLayout, UniversalTransition } from "echarts/features";
// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from "echarts/renderers";
// 注册必须的组件
echarts.use([
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent,
BarChart,
LabelLayout,
UniversalTransition,
CanvasRenderer,
]);
</script>
2. 添加 ECharts 容器
<template>
<!-- 添加一个div盒子,用于创建 echarts 图表,必须要设置宽高-->
<div class="main" ref="chartDom"></div>
</template>
<script lang="ts" setup>
// 创建 echarts 容器
const chartDom = ref(null);
</script>
<style lang="scss" scoped>
.main {
width: 100%;
height: 100%;
background: #000;
}
</style>
3. 配置 ECharts 图表参数
- series 数组长度要与 legend 数组长度一致
- series 中 data 中数组长度要与 xAxis 中的 data 中的数组长度一致
- 详见 ECharts 官网文档中的配置项手册
- 网址:https://echarts.apache.org/v4/zh/option.html#title
<script lang="ts" setup>
import { reactive } from "vue";
const option = reactive({
// 标题
title: {
text: "ECharts 入门示例",
},
// 提示框组件
tooltip: {},
// 图例组件
legend: {
data: ["销量"],
},
// x 轴
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
},
// y 轴
yAxis: {},
// 系列列表
series: [
{
// 该系列表示的信息
name: "销量",
// 图标类型
type: "bar",
// 该 data 中数组长度要与 xAxis 中的 data 中的数组长度一致
data: [5, 20, 36, 10, 10, 20],
},
],
});
</script>
4. 创建 ECharts 初始化函数
- 通过监听浏览器 resize 事件,再调用 myChart.resize() 方法,可实现 ECharts 图表的自适应大小
<script lang="ts" setup>
// echarts初始化函数
const init = () => {
// 基于准备好的dom,初始化echarts实例
const myChart = echarts.init(chartDom.value);
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
//监听页面的 resize 事件获取浏览器大小改变的事件,调用 echartsInstance.resize 改变图表的大小
window.addEventListener("resize", () => {
// 调用 echartsInstance.resize 改变图表的大小
myChart.resize();
});
};
</script>
5. 初始化 ECharts 图表
<script lang="ts" setup>
// 页面加载完成时,初始化echarts实例
onMounted(() => {
init();
});
</script>
6. 完整代码示例
<template>
<div class="main" ref="chartDom"></div>
</template>
<script lang="ts" setup>
import { ref, reactive, onMounted } from "vue";
// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from "echarts/core";
// 引入柱状图图表,图表后缀都为 Chart
import { BarChart } from "echarts/charts";
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import { TitleComponent, TooltipComponent, GridComponent, DatasetComponent, TransformComponent, LegendComponent } from "echarts/components";
// 标签自动布局、全局过渡动画等特性
import { LabelLayout, UniversalTransition } from "echarts/features";
// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from "echarts/renderers";
// 注册必须的组件
echarts.use([
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent,
LegendComponent,
BarChart,
LabelLayout,
UniversalTransition,
CanvasRenderer,
]);
// 创建echarts容器
const chartDom = ref(null);
// 指定图表的配置项和数据
const option = reactive({
// 标题
title: {
text: "ECharts 入门示例",
},
// 提示框组件
tooltip: {},
// 图例组件
legend: {
data: ["销量"],
},
// x 轴
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
},
// y 轴
yAxis: {},
// 系列列表
series: [
{
// 该系列表示的信息
name: "销量",
// 图标类型
type: "bar",
// 该 data 中数组长度要与 xAxis 中的 data 中的数组长度一致
data: [5, 20, 36, 10, 10, 20],
},
],
});
// echarts初始化函数
const init = () => {
// 基于准备好的dom,初始化echarts实例
const myChart = echarts.init(chartDom.value);
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
//监听页面的 resize 事件获取浏览器大小改变的事件,调用 echartsInstance.resize 改变图表的大小
window.addEventListener("resize", () => {
// 调用 echartsInstance.resize 改变图表的大小
myChart.resize();
});
};
// 页面加载完成时,初始化echarts实例
onMounted(() => {
init();
});
</script>
<style lang="scss" scoped>
.main {
width: 100%;
height: 100%;
background: #000;
}
</style>
vue3 选项式
1. 按需引入 ECharts 图表和组件
<script lang="ts">
// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from "echarts/core";
// 引入柱状图图表,图表后缀都为 Chart
import { BarChart } from "echarts/charts";
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import { TitleComponent, TooltipComponent, GridComponent, DatasetComponent, TransformComponent, LegendComponent } from "echarts/components";
// 标签自动布局、全局过渡动画等特性
import { LabelLayout, UniversalTransition } from "echarts/features";
// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from "echarts/renderers";
// 注册必须的组件
echarts.use([
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent,
LegendComponent,
BarChart,
LabelLayout,
UniversalTransition,
CanvasRenderer,
]);
</script>
2. 添加 ECharts 容器
<template>
<div class="main" ref="chartDom"></div>
</template>
<script lang="ts">
export default {};
</script>
<style lang="scss" scoped>
.main {
width: 100%;
height: 100%;
background: #000;
}
</style>
3. 配置 ECharts 图表参数
- series 数组长度要与 legend 数组长度一致
- series 中 data 中数组长度要与 xAxis 中的 data 中的数组长度一致
- 详见 ECharts 官网文档中的配置项手册
- 网址:https://echarts.apache.org/v4/zh/option.html#title
<script lang="ts">
export default {
data() {
return {
option: {
// 标题
title: {
text: "ECharts 入门示例",
},
// 提示框组件
tooltip: {},
// 图例组件
legend: {
data: ["销量"],
},
// x 轴
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
},
// y 轴
yAxis: {},
// 系列列表
series: [
{
// 该系列表示的信息
name: "销量",
// 图标类型
type: "bar",
// 该 data 中数组长度要与 xAxis 中的 data 中的数组长度一致
data: [5, 20, 36, 10, 10, 20],
},
],
},
};
},
};
</script>
4. 创建 ECharts 初始化函数
- 通过监听浏览器 resize 事件,再调用 myChart.resize() 方法,可实现 ECharts 图表的自适应大小
<script lang="ts">
export default {
methods: {
// echarts初始化函数
init() {
// 基于准备好的dom,初始化echarts实例
const myChart = echarts.init(this.$refs.chartDom);
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(this.option);
//监听页面的 resize 事件获取浏览器大小改变的事件,调用 echartsInstance.resize 改变图表的大小
window.addEventListener("resize", () => {
// 调用 echartsInstance.resize 改变图表的大小
myChart.resize();
});
},
},
};
</script>
5. 初始化 ECharts 图表
<script lang="ts">
export default {
mounted() {
this.init();
},
};
</script>
6.完整代码示例
<template>
<div class="main" ref="chartDom"></div>
</template>
<script lang="ts">
// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from "echarts/core";
// 引入柱状图图表,图表后缀都为 Chart
import { BarChart } from "echarts/charts";
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import { TitleComponent, TooltipComponent, GridComponent, DatasetComponent, TransformComponent, LegendComponent } from "echarts/components";
// 标签自动布局、全局过渡动画等特性
import { LabelLayout, UniversalTransition } from "echarts/features";
// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from "echarts/renderers";
// 注册必须的组件
echarts.use([
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent,
LegendComponent,
BarChart,
LabelLayout,
UniversalTransition,
CanvasRenderer,
]);
export default {
data() {
return {
option: {
// 标题
title: {
text: "ECharts 入门示例",
},
// 提示框组件
tooltip: {},
// 图例组件
legend: {
data: ["销量"],
},
// x 轴
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
},
// y 轴
yAxis: {},
// 系列列表
series: [
{
// 该系列表示的信息
name: "销量",
// 图标类型
type: "bar",
// 该 data 中数组长度要与 xAxis 中的 data 中的数组长度一致
data: [5, 20, 36, 10, 10, 20],
},
],
},
};
},
methods: {
// echarts初始化函数
init() {
// 基于准备好的dom,初始化echarts实例
const myChart = echarts.init(this.$refs.chartDom);
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(this.option);
//监听页面的 resize 事件获取浏览器大小改变的事件,调用 echartsInstance.resize 改变图表的大小
window.addEventListener("resize", () => {
// 调用 echartsInstance.resize 改变图表的大小
myChart.resize();
});
},
},
mounted() {
this.init();
},
};
</script>
<style lang="scss" scoped>
.main {
width: 100%;
height: 100%;
background: #000;
}
</style>