首页 前端知识 Vue集成Echarts

Vue集成Echarts

2024-04-22 09:04:08 前端知识 前端哥 470 592 我要收藏

Vue集成Echarts

1、项目

1.1、创建项目

vue create vue-echarts
cd vue-echarts
npm run serve

1.2、安装echarts

npm install -D echarts --save

1.3、修改项目配置

vue.config.js
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false
})
About.vue
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 3、设置echarts参数
        vchart.setOption({
            // 设置echarts标题
            title: {
                text: "主标题"
            },
            // 设置x轴相关参数
            xAxis: {
                data: ["EZ", "VN", "NOC", "MF"]
            },
            // 设置y轴相关参数
            yAxis: {

            },
            // 设置系列相关参数
            series: {
                // 图形名称
                name: "LOL英雄大全",
                // 图形类型
                type: "bar",
                // 数据
                data: [6300, 4800, 3200, 600]
            }
        })

    }

}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
App.vue
<template>
  <div id="app">
    <About />
  </div>
</template>

<script>
import About from './views/About.vue'

export default {
  name: 'App',
  components: {
    About,
  }
}
</script>
<style>
</style>

2、echarts

https://echarts.apache.org/zh

2.1、配置项手册

https://echarts.apache.org/zh/option.html#title.link

2.1.1、title标题组件
About.vue
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 3、设置echarts参数
        vchart.setOption({
            // 设置echarts标题
            title: {
                text: "主标题",
                // 主标题文本超链接
                link:"https://baidu.com",
                // 副标题链接
                sublink:"https://baidu.com",
                // 指定窗口打开主标题超链接;self:当前窗口打开,blank:新窗口打开;
                target:"self",
                backgroundColor:"pink",
                borderColor:"red",
                borderWidth:5,
                x:"center",
                subtext:"副标题",
                //主标题样式
                textStyle:{
                    color:"yellow",
                    fontSize:30
                },
                //副标题样式
                subtextStyle:{
                    color:"yellow",
                    fontSize:30
                }
            },
            // 设置x轴相关参数
            xAxis: {
                data: ["EZ", "VN", "NOC", "MF"]
            },
            // 设置y轴相关参数
            yAxis: {

            },
            // 设置系列相关参数
            series: {
                // 图形名称
                name: "LOL英雄大全",
                // 图形类型
                type: "bar",
                // 数据
                data: [6300, 4800, 3200, 600]
            }
        })

    }

}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
2.1.2、tootip提示框组件

https://echarts.apache.org/zh/option.html#tooltip

About.vue
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 3、设置echarts参数
        vchart.setOption({
            // 设置echarts标题
            title: {
                text: "主标题",
                // 主标题文本超链接
                link: "https://baidu.com",
                // 副标题链接
                sublink: "https://baidu.com",
                // 指定窗口打开主标题超链接;self:当前窗口打开,blank:新窗口打开;
                target: "self",
                backgroundColor: "pink",
                borderColor: "red",
                borderWidth: 5,
                x: "center",
                subtext: "副标题",
                textStyle: {
                    color: "yellow",
                    fontSize: 30
                },
                subtextStyle: {
                    color: "yellow",
                    fontSize: 30
                }
            },
            tooltip:{
                trigger:"item",
                axisPointer:{
                    type:"line"
                },
                // 是否显示提示框浮层,默认显示
                // showContent:false,
                // 提示框浮层的文本样式
                textStyle: {
                    //   悬浮层样式
                    backgroundColor: "pink",
                    borderColor: "red",
                    borderWidth: 5,
                    color: "red"
                },
                // 自定义提示框内容
                // formatter(params){
                //     console.log(params);
                // }
            },

            // 设置x轴相关参数
            xAxis: {
                data: ["EZ", "VN", "NOC", "MF"]
            },
            // 设置y轴相关参数
            yAxis: {

            },
            // 设置系列相关参数
            series: {
                // 图形名称
                name: "LOL英雄大全",
                // 图形类型
                type: "bar",
                // 数据
                data: [6300, 4800, 3200, 600]
            }
        })

    }

}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
2.1.3、legend图例组件
About.vue
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 3、设置echarts参数
        vchart.setOption({
            // 设置echarts标题
            title: {
                text: "主标题",

            },
            tooltip: {

            },
            // 图例组件
            legend: {
                // 设置图例的开启或关闭
                show: true,
                // 图例项的icon
                // icon:"circle",
                // 设置位置
                top: "10%",
                // 图例宽高
                itemWidth: 10,
                itemHeight: 20,
                textStyle: {
                    color: "red",
                    fontSize: 30,
                    backgroundColor: "yellow"
                }
            },

            // 设置x轴相关参数
            xAxis: {
                data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
            },
            // 设置y轴相关参数
            yAxis: {

            },
            // 设置系列相关参数
            series: {
                // 图形名称
                name: "销量",
                // 图形类型
                type: "bar",
                // 数据
                data: [5, 20, 35, 10, 10, 20]
            }
        })

    }

}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
2.1.4、series系列
About.vue
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 3、设置echarts参数
        vchart.setOption({
            // 设置echarts标题
            title: {
                text: "主标题",

            },
            tooltip: {

            },
            // 图例组件
            legend: {
                // 设置图例的开启或关闭
                show: true,
                // 图例项的icon
                // icon:"circle",
                // 设置位置
                top: "10%",
                // 图例宽高
                itemWidth: 10,
                itemHeight: 20,
                textStyle: {
                    color: "red",
                    fontSize: 30,
                    backgroundColor: "yellow"
                }
            },

            // 设置x轴相关参数
            xAxis: {
                data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
            },
            // 设置y轴相关参数
            yAxis: {

            },
            // 设置系列相关参数
            series: {
                // 图形名称
                name: "销量",
                // 图形类型
                type: "bar",
                // 数据
                data: [5, 20, 35, 10, 10, 20],
                // 最大最小值
                markPoint: {
                    //标注的数据数组,每一项都是一个对象
                    data: [
                        {
                            type: "max",
                            name: "最大值"
                        },
                        {
                            type: "min",
                            name: "最小值"
                        }
                    ]
                },
                // 图表的标线
                markLine: {
                    data: [
                        {
                            type: "average",
                            name: "平均值"
                        }
                    ]
                }
            }
        })

    }

}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
2.1.5、grid

设置图标的容器与当前内容容器的位置或样式设置。
直角坐标系内绘图网格,单个 grid 内最多可以放置上下两个 X 轴,左右两个 Y 轴。可以在网格上绘制折线图,柱状图,散点图(气泡图)。

<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let xData = ["美食", "数码", "日化", "蔬菜", "熟食"];
        let yData = [88, 75, 20, 210, 35];
        let option = {
            xAxis: {
                data: xData,
                type: "category",
            },
            yAxis: {
                type: "value",
            },
            // 直角坐标系内绘图网格
            grid: {
                show: true,
                left: "20%",
                top: "20%",
                right: "20%",
                bottom: "20%",
                backgroundColor: "pink",
                borderColor: "yellow"
            },
            // 提示框
            tooltip: {},
            series: [
                {
                    type: "bar",
                    name: "销售",
                    data: yData,
                }
            ]
        };

        vchart.setOption(option);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
2.1.6、dataset
数据排序
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 配置项
        let options = {
            dataset: [
                {
                    // 数据分类
                    dimensions: ["类别", "数量"],
                    // 分类数据
                    source: [
                        ["美食", 123],
                        ["日化", 98],
                        ["熟食", 342],
                        ["数码", 267],
                        ["蔬菜", 318],
                        ["水果", 427]
                    ]
                },
                {
                    transform: {
                        // 数据排序
                        type: "sort",
                        config: {
                            // 排序字段及规则
                            dimension: "数量", order: "desc"
                        }
                    }
                }
            ],
            xAxis: {
                type: "category",
                axisLabel: {
                    // 间隔
                    interval: 0,
                    // 倾斜
                    rotate: 30,
                }
            },
            yAxis: {},
            series: [
                {
                    type: "bar",
                    encode: {
                        x: "类别",
                        y: "数量"
                    },
                    datasetIndex: 1,
                },

            ]
        };
        // 设置配置项
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.2、柱状图

About.vue
X轴为类目轴
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 3、设置echarts参数
        vchart.setOption({
            // 设置echarts标题
            title: {
                text: "主标题",

            },
            tooltip: {

            },
            // 图例组件
            legend: {
                // 设置图例的开启或关闭
                show: true,
                // 图例项的icon
                // icon:"circle",
                // 设置位置
                top: "10%",
                // 图例宽高
                itemWidth: 10,
                itemHeight: 20,
                textStyle: {
                    color: "red",
                    fontSize: 30,
                    backgroundColor: "yellow"
                }
            },

            // 设置x轴相关参数
            xAxis: {
                data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
                 //坐标轴的类型,value数据轴,category 类目轴
                type:"category"
            },
            // 设置y轴相关参数
            yAxis: {
                
            },
            // 设置系列相关参数
            series: {
                // 图形名称
                name: "销量",
                // 图形类型
                type: "bar",
                // 数据
                data: [5, 20, 35, 10, 10, 20],
                // 最大最小值
                markPoint: {
                    //标注的数据数组,每一项都是一个对象
                    data: [
                        {
                            type: "max",
                            name: "最大值"
                        },
                        {
                            type: "min",
                            name: "最小值"
                        }
                    ]
                },
                // 图表的标线
                markLine: {
                    data: [
                        {
                            type: "average",
                            name: "平均值"
                        }
                    ]
                }
            }
        })

    }

}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
Y轴为类目轴
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 3、设置echarts参数
        vchart.setOption({
            // 设置echarts标题
            title: {
                text: "主标题",

            },
            tooltip: {

            },
            // 图例组件
            legend: {
                // 设置图例的开启或关闭
                show: true,
                // 图例项的icon
                // icon:"circle",
                // 设置位置
                top: "10%",
                // 图例宽高
                itemWidth: 10,
                itemHeight: 20,
                textStyle: {
                    color: "red",
                    fontSize: 30,
                    backgroundColor: "yellow"
                }
            },

            // 设置x轴相关参数
            xAxis: {
                type: "value"
            },
            // 设置y轴相关参数
            yAxis: {
                data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
                //坐标轴的类型,value数据轴,category 类目轴
                type: "category"
            },
            // 设置系列相关参数
            series: {
                // 图形名称
                name: "销量",
                // 图形类型
                type: "bar",
                // 数据
                data: [5, 20, 35, 10, 10, 20],
                // 设置轴的宽度
                barWidth: 20,
                // 设置轴的统一颜色
                // color:"pink",
                // 单独设置每个轴的颜色
                itemStyle: {
                    normal: {
                        color: function (params) {
                            let colorList = ["#c23531", "#2f4554", "#61a0a8", "#91c7ae"]
                            return colorList[params.dataIndex]
                        }
                    }
                },
                // 最大最小值
                markPoint: {
                    //标注的数据数组,每一项都是一个对象
                    data: [
                        {
                            type: "max",
                            name: "最大值"
                        },
                        {
                            type: "min",
                            name: "最小值"
                        }
                    ]
                },
                // 图表的标线
                markLine: {
                    data: [
                        {
                            type: "average",
                            name: "平均值"
                        }
                    ]
                }
            }
        })

    }

}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.3、饼图

饼状图
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 设置数据
        let data = [
            { value: 67, name: "美食" },
            { value: 175, name: "日化" },
            { value: 27, name: "数码" },
            { value: 89, name: "家电" }
        ];
        let option = {
            title: {
                text: "饼状图",
                left: "center"
            },
            //图例
            legend: {
                left: "left",
                // 图例的布局朝向
                orient: "verical",
            },
            series: [
                {
                    name: "销量统计",
                    type: "pie",
                    data: data,
                },

            ],
        };
        vchart.setOption(option);

    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
环形图
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 设置数据
        // let data = [
        //     { value: 67, name: "美食" },
        //     { value: 175, name: "日化" },
        //     { value: 40, name: "数码" },
        //     { value: 89, name: "家电" }
        // ];
        let data = [
            { value: 67, name: "美食", itemStyle: { normal: { color: 'rgb(1,175,80)' } } },
            { value: 175, name: "日化", itemStyle: { normal: { color: 'rgb(255,175,80)' } } },
            { value: 40, name: "数码", itemStyle: { normal: { color: 'rgb(1,0,80)' } } },
            { value: 89, name: "家电", itemStyle: { normal: { color: 'rgb(30,50,70)' } } }
        ];
        let option = {
            title: {
                text: "饼状图",
                left: "center"
            },
            //图例
            legend: {
                left: "left",
                // 图例的布局朝向
                orient: "verical",
            },
            series: [
                {
                    name: "销量统计",
                    type: "pie",
                    data: data,
                    // 设置饼图的半径,第一项内半径,第二项外半径
                    radius: ["40%", "70%"],
                    // 设置环形图的文本标签
                    label: {
                        show: true,
                        // outside外侧展示,inside内存展示,center中心展示
                        position: "inside",
                    },
                    // 是否设置成南丁格尔图
                    roseType: "area",
                    itemStyle: {
                        color: '#c29375',
                        shadowBlur: 200,
                        shadowColor: "reba(0,0,0,.5)"
                    }
                },

            ],
        };
        vchart.setOption(option);

    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.4、折线图

折线图效果
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 设置数据
        let xData = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
        let data = [130, 25, 234, 164, 89, 188, 79];
        // 配置项
        let option = {
            xAxis: {
                type: "category",
                data: xData
            },
            yAxis: {
                type: "value"
            },
            series: [
                {
                    data: data,
                    // 折线图
                    type: "line",
                    // 开启平滑的过渡
                    smooth: true,
                    // 折线图样式
                    areaStyle: {},
                    // 图表的标注标线
                    markPoint: {
                        data: [
                            { type: "max", name: "最大值" },
                            { type: "min", name: "最小值" }
                        ]
                    },
                    markLine: {
                        data: [
                            { type: "average", name: "平均值" }
                        ]
                    }


                }
            ]
        };
        // 设置配置项
        vchart.setOption(option);


    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
折线图堆叠
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 设置数据
        let xData = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
        let dataA = [130, 25, 234, 164, 89, 188, 79];
        let dataB = [60, 215, 124, 164, 111, 288, 190];
        let dataC = [90, 87, 77, 164, 299, 88, 179];
        let dataD = [240, 85, 478, 527, 333, 142, 100];
        // 配置项
        let option = {
            xAxis: {
                type: "category",
                data: xData
            },
            yAxis: {
                type: "value"
            },
            series: [
                {
                    name: "美食",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataA,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },
                {
                    name: "日化",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataB,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },
                {
                    name: "数码",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataC,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },
                {
                    name: "家电",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataD,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },



            ]
        };
        // 设置配置项
        vchart.setOption(option);


    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.5、散点图

散点图基本效果
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let options = {
            xAxis: {},
            yAxis: {},
            series: [
                {
                    // 设置数据
                    data: [
                        [10.0, 8.04],
                        [8.07, 6.95],
                        [13.0, 7.58],
                        [9.05, 8.81],
                        [11.0, 8.33],
                        [14.0, 7.66],
                        [13.4, 6.81],
                        [10.0, 6.33],
                        [14.0, 8.96],
                        [12.5, 6.82],
                        [9.15, 7.2],
                        [11.5, 7.2],
                        [3.03, 4.23],
                        [12.2, 7.83],
                        [2.02, 4.47],
                        [1.05, 3.33],
                        [4.05, 4.96],
                        [6.03, 7.24],
                        [12.0, 6.26],
                        [12.0, 8.84],
                        [7.08, 5.82],
                        [5.02, 5.68]
                    ],
                    // 散点图
                    type: "scatter",
                    // 设置散点图大小
                    symbolSize: 20,
                }
            ]
        };
        // 图标绘制
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
散点图效果实现
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let options = {
            xAxis: {},
            yAxis: {},
            // 提示框
            tooltip: {},
            series: [
                {
                    // 设置数据
                    data: [
                        [10.0, 8.04],
                        [8.07, 6.95],
                        [13.0, 7.58],
                        [9.05, 8.81],
                        [11.0, 8.33],
                        [14.0, 7.66],
                        [13.4, 6.81],
                        [10.0, 6.33],
                        [14.0, 8.96],
                        [12.5, 6.82],
                        [9.15, 7.2],
                        [11.5, 7.2],
                        [3.03, 4.23],
                        [12.2, 7.83],
                        [2.02, 4.47],
                        [1.05, 3.33],
                        [4.05, 4.96],
                        [6.03, 7.24],
                        [12.0, 6.26],
                        [12.0, 8.84],
                        [7.08, 5.82],
                        [5.02, 5.68]
                    ],
                    // 散点图
                    type: "scatter",
                    // 设置散点图大小
                    symbolSize: 20,
                    // 图形样式
                    // color:"red",
                    color: {
                        // 线性渐变
                        type: "linear",
                        // 四个属性相当于在图形包围盒中的百分比
                        x: 0,
                        y: 0,
                        x2: 1,
                        y2: 0,
                        // 线性渐变的颜色
                        colorStops: [
                            {
                                offset: 0,
                                color: "#00ccff"
                            },
                            {
                                offset: 1,
                                color: "rgba(255,173,2,.9)"
                            }
                        ],
                    },
                    // 选中高亮效果
                    emphasis: {
                        itemStyle: {
                            borderColor: "rgba(100,200,50,.5)",
                            borderWidth: 30,
                        }
                    },
                }
            ]
        };
        // 图标绘制
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.6、K线图

K线图基本效果
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let option = {
            xAxis: {
                data: ['日化', '蔬菜', '电器', '美妆'],
            },
            yAxis: {

            },
            series: [
                {
                    // K线图
                    type: "candlestick",
                    data: [
                        [20, 34, 10, 38],
                        [40, 35, 30, 50],
                        [31, 38, 33, 44],
                        [38, 15, 5, 42]
                    ]
                },
            ],
        };

        vchart.setOption(option);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
K线图效果实现
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    data() {
        return {
            kdata: [
                [20, 34, 10, 38],
                [40, 35, 30, 50],
                [31, 38, 33, 44],
                [38, 15, 5, 42]
            ],
        }
    },
    computed: {
        newData() {
            return this.kdata.map(v => v[0]);
        }
    },
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let option = {
            xAxis: {
                data: ['日化', '蔬菜', '电器', '美妆'],
            },
            yAxis: {

            },
            // 提示框
            tooltip: {
                trigger: "axis",
                axisPointer: {
                    type: "cross",
                },
            },
            series: [
                {
                    // K线图
                    type: "candlestick",
                    data: this.kdata,
                    itemStyle: {
                        // 上涨的颜色
                        color: "#ec5566",
                        // 下跌的颜色
                        color0: "green",
                        // 上涨的边框色
                        borderColor: "#8A0000",
                        // 下跌的边框色
                        borderColor0: "#008F28",

                    },
                    markPoint: {
                        data: [
                            {
                                name: "最大值",
                                type: "max",
                                // 设置在那个维度上面进行最大最小值
                                valueDim: "highest"
                            },
                            {
                                name: "最小值",
                                type: "min",
                                valueDim: "lowest"
                            },
                            {
                                name: "平均值",
                                type: "average",
                                valueDim: "close",
                            }
                        ]
                    }
                },
                // 折线图
                {
                    type: "line",
                    smooth: true,
                    data: this.newData,
                }
            ],
        };

        vchart.setOption(option);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.7、雷达图

雷达图基本效果
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let option = {
            title: {
                text: "雷达图"
            },
            radar: [
                {
                    // 雷达图的指示器,用来指定雷达图中的多个变量(维度)
                    indicator: [
                        { name: "蔬菜", max: 6500 },
                        { name: "水果", max: 16000 },
                        { name: "熟食", max: 30000 },
                        { name: "数码", max: 38000 },
                        { name: "家电", max: 52000 },
                        { name: "日化", max: 25000 }
                    ],
                    // 设置雷达图效果图
                    shape: "circle",
                }
            ],
            series: [
                {
                    type: "radar",
                    data: [
                        {
                            value: [4200, 5300, 6666, 2345, 15234, 14567]
                        }
                    ]
                }
            ]
        };

        vchart.setOption(option);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
雷达图效果实现
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let option = {
            title: {
                text: "雷达图"
            },
            radar: [
                {
                    // 雷达图的指示器,用来指定雷达图中的多个变量(维度)
                    indicator: [
                        { name: "蔬菜", max: 6500 },
                        { name: "水果", max: 16000 },
                        { name: "熟食", max: 30000 },
                        { name: "数码", max: 38000 },
                        { name: "家电", max: 52000 },
                        { name: "日化", max: 25000 }
                    ],
                    // 设置雷达图效果图
                    shape: "circle",
                    // 设置雷达图半径
                    radius: 200,
                    // 设置雷达图角度、内容进行旋转
                    // 坐标系的起始角度,进行旋转
                    startAngle: 180,
                    // 内部分割层级
                    splitNumber: 4,
                    // 设置内容及颜色
                    axisName: {
                        formatter: "{value}",
                        color: "#428BD4"
                    },
                    // 设置分割区域效果
                    splitArea: {
                        // 设置分割区的样式
                        areaStyle: {
                            color: ["#77EADE", "#26C3BE", "#64AFE9", "#428BD4"],
                            shadowColor: "0,0,0,.2",
                            shadowBlur: 10
                        }
                    }
                }
            ],
            series: [
                {
                    type: "radar",
                    data: [
                        {
                            value: [4200, 5300, 6666, 2345, 15234, 14567],
                            // 内容填充样式
                            areaStyle: {
                                color: "rgba(255,255,0,.5)"
                            }
                        }
                    ],
                    lineStyle: {
                        type: "dashed"
                    }
                },

            ]
        };

        vchart.setOption(option);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.8、漏斗图

漏斗图基本效果
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let options = {
            title: {
                text: "漏斗图"
            },
            tooltip: {
                trigger: "item",
                formatter: "{a}<br/>{b}:{c}%"
            },
            series: {
                // 设置漏斗图
                type: "funnel",
                data: [
                    { value: 60, name: "美食" },
                    { value: 40, name: "日化" },
                    { value: 20, name: "数码" },
                    { value: 80, name: "家电" },
                    { value: 100, name: "蔬菜" },
                ],
                left: "10%"
            },
        };
        vchart.setOption(options);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
漏斗图效果实现
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let options = {
            title: {
                text: "漏斗图"
            },
            tooltip: {
                trigger: "item",
                formatter: "{a}<br/>{b}:{c}%"
            },
            series: {
                // 设置漏斗图
                type: "funnel",
                data: [
                    { value: 60, name: "美食" },
                    { value: 40, name: "日化" },
                    { value: 20, name: "数码" },
                    { value: 80, name: "家电" },
                    { value: 100, name: "蔬菜" },
                ],
                left: "10%",
                // 排序:ascending、none
                sort: "ascending",
                // 样式
                itemStyle: {
                    borderColor: "red",
                    borderWidth: 3,
                },
                // 提示信息
                label: {
                    show: true,
                    // 提示文本
                    position: "inside",
                },
                // 选中凸显
                emphasis:{
                    label:{
                        fontSize:30,
                    }
                }

            },
        };
        vchart.setOption(options);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.9、仪表盘

仪表盘设置
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let options = {
            series: {
                type: "gauge",
                data: [
                    {
                        value: 45,
                        name: "提示信息",
                    }
                ],
                // 动画
                detail: {
                    calueAnimation: true,
                },
                // 外圈
                progress: {
                    show: true,
                }
            }
        };
        vchart.setOption(options);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.10、关系图

关系图设置
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    data() {
        return {
            // 节点数据
            list: [
                {
                    name: "韦小宝",
                    id: "1",
                    symbolSize: 30
                },
                {
                    name: "方怡",
                    id: "2",
                    symbolSize: 30
                },
                {
                    name: "双儿",
                    id: "3",
                    symbolSize: 30
                },
                {
                    name: "茅十八",
                    id: "4",
                    symbolSize: 30
                },
                {
                    name: "吴六奇",
                    id: "5",
                    // 样式
                    symbolSize: 30
                },
            ],
            // 关系数据
            num: [
                {
                    // 边的节点名称
                    source: "1",
                    // 目标节点名称
                    target: "2",
                    // 
                    relation: {
                        name: "老婆",
                        id: "1"
                    }
                },
                {
                    // 边的节点名称
                    source: "1",
                    // 目标节点名称
                    target: "4",
                    // 
                    relation: {
                        name: "兄弟",
                        id: "1"
                    }
                },
                {
                    // 边的节点名称
                    source: "4",
                    // 目标节点名称
                    target: "1",
                    // 
                    relation: {
                        name: "兄弟",
                        id: "1"
                    }
                },
                {
                    // 边的节点名称
                    source: "3",
                    // 目标节点名称
                    target: "5",
                    // 
                    relation: {
                        name: "义妹",
                        id: "1"
                    }
                },
            ]
        }
    },

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        let options = {

            series: [
                {
                    // 关系图
                    type: "graph",
                    data: this.list,
                    // 引导布局
                    layout: "force",
                    // 样式
                    itemStyle: {
                        color: "#95dcb2"
                    },
                    // 图形上的文字
                    label: {
                        // 是否显示
                        show: true,
                        // 文字的位置
                        position: "bottom",
                        // 距离图形的位置
                        distance: 6,
                        fontSize: 16,
                        align: "center"
                    },
                    // 设置间距
                    force: {
                        // 点与点的间距
                        repulsion: 100,
                        // 距离中心点的距离
                        qravity: 0.01,
                        // 两边点的距离
                        edgeLength: 200,
                    },
                    // 节点关系数据
                    links: this.num,
                    // 设置内容
                    edgeLabel: {
                        show: true,
                        // 标签中线
                        position: "middle",
                        formatter: (params) => {
                            return params.data.relation.name;
                        }
                    }

                }
            ]

        };
        vchart.setOption(options);
    },
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.11、数据区域缩放

数据区域缩放设置
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 设置数据
        let xData = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
        let data = [150, 230, 224, 218, 135, 147, 260];
        // 配置项
        let option = {
            xAxis: {
                type: "category",
                data: xData
            },
            yAxis: {
                type: "value"
            },
            series: [
                {
                    data: data,
                    // 折线图
                    type: "line",
                    // 开启平滑的过渡
                    smooth: true,
                    // 折线图样式
                    // areaStyle: {},
                    // 图表的标注标线
                    markPoint: {
                        data: [
                            { type: "max", name: "最大值" },
                            { type: "min", name: "最小值" }
                        ]
                    },
                    markLine: {
                        data: [
                            { type: "average", name: "平均值" }
                        ]
                    }


                }
            ],
		   // 数据区域缩放设置
            dataZoom: [
                {
                    type: "slider",
                    xAxisIndex: 0,
                    filterMode: "none",
                },
                {
                    type: "slider",
                    yAxisIndex: 0,
                    filterMode: "none",
                },
            ]
        };
        // 设置配置项
        vchart.setOption(option);


    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.12、树图

树图基本设置
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    data() {
        return {
            list: {
                // 最外层的数据就是数据的根节点
                name: "根节点",  //名字
                children: [
                    {
                        name: "层级2",
                        children: [
                            {
                                name: "层级3-1",
                                children: [
                                    { name: "数据1", vaule: 123 },
                                    { name: "数据2", vaule: 456 },
                                    { name: "数据3", vaule: 567 },
                                    { name: "数据4", vaule: 678 },
                                ]
                            },
                            {
                                name: "层级3-2",
                                children: [
                                    { name: "数据1", vaule: 123 },
                                    { name: "数据2", vaule: 456 },
                                    { name: "数据3", vaule: 567 },
                                    { name: "数据4", vaule: 678 },
                                ]
                            },
                        ]
                    }
                ]
            }
        }
    },
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 配置项
        let options = {
            tooltip: {
                trigger: "item",
            },
            series: [
                {
                    type: "tree",
                    data: [this.list],
                    // 标记大小
                    symbolSize: 15,
                    label: {
                        position: "left",
                        verticalAlign: "middle",
                        align: "conter",
                        fontSize: 10,
                    },
                    // 子节点
                    leaves: {
                        label: {
                            position: "right",
                            verticalAlign: "middle",
                            align: "conter",
                        }
                    },
                    emphasis: {
                        // 高亮子孙节点
                        focus: "descendant"
                    }
                }
            ]
        };
        // 设置配置项
        vchart.setOption(options);


    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
树图方向切换
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 配置项
        let options = {
            dataset: [
                {
                    // 数据分类
                    dimensions: ["类别", "数量"],
                    // 分类数据
                    source: [
                        ["美食", 123],
                        ["日化", 98],
                        ["熟食", 342],
                        ["数码", 267],
                        ["蔬菜", 318],
                        ["水果", 427]
                    ]
                },
                {
                    transform: {
                        // 数据排序
                        type: "sort",
                        config: {
                            // 排序字段及规则
                            dimension: "数量", order: "desc"
                        }
                    }
                }
            ],
            xAxis: {
                type: "category",
                axisLabel: {
                    // 间隔
                    interval: 0,
                    // 倾斜
                    rotate: 30,
                }
            },
            yAxis: {},
            series: [
                {
                    type: "bar",
                    encode: {
                        x: "类别",
                        y: "数量"
                    },
                    datasetIndex: 1,
                },

            ]
        };
        // 设置配置项
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.13、主题设置

内置主题
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        // echarts中内置主题:light、dark
        let vchart = echarts.init(this.$refs.vcharts,"dark");
        // 配置项
        let options = {
            dataset: [
                {
                    // 数据分类
                    dimensions: ["类别", "数量"],
                    // 分类数据
                    source: [
                        ["美食", 123],
                        ["日化", 98],
                        ["熟食", 342],
                        ["数码", 267],
                        ["蔬菜", 318],
                        ["水果", 427]
                    ]
                },
                {
                    transform: {
                        // 数据排序
                        type: "sort",
                        config: {
                            // 排序字段及规则
                            dimension: "数量", order: "desc"
                        }
                    }
                }
            ],
            xAxis: {
                type: "category",
                axisLabel: {
                    // 间隔
                    interval: 0,
                    // 倾斜
                    rotate: 30,
                }
            },
            yAxis: {},
            series: [
                {
                    type: "bar",
                    encode: {
                        x: "类别",
                        y: "数量"
                    },
                    datasetIndex: 1,
                },

            ]
        };
        // 设置配置项
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style><template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {

    mounted() {
        // 2、初始化echarts
        // echarts中内置主题:light、dark
        let vchart = echarts.init(this.$refs.vcharts,"dark");
        // 配置项
        let options = {
            dataset: [
                {
                    // 数据分类
                    dimensions: ["类别", "数量"],
                    // 分类数据
                    source: [
                        ["美食", 123],
                        ["日化", 98],
                        ["熟食", 342],
                        ["数码", 267],
                        ["蔬菜", 318],
                        ["水果", 427]
                    ]
                },
                {
                    transform: {
                        // 数据排序
                        type: "sort",
                        config: {
                            // 排序字段及规则
                            dimension: "数量", order: "desc"
                        }
                    }
                }
            ],
            xAxis: {
                type: "category",
                axisLabel: {
                    // 间隔
                    interval: 0,
                    // 倾斜
                    rotate: 30,
                }
            },
            yAxis: {},
            series: [
                {
                    type: "bar",
                    encode: {
                        x: "类别",
                        y: "数量"
                    },
                    datasetIndex: 1,
                },
            ]
        };
        // 设置配置项
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
自定义主题

1、在主题编辑器中编辑主题
主题编辑器地址:https://echarts.apache.org/zh/theme-builder.html
2、下载对应主题json格式
3、创建js文件把刚下载的文件写入并且暴露

let roma = 主题json
export default roma

4、引用主题文件

2.14、地图

中国地图展示

1、准备echarts基本结构
2、设置中国地图的矢量数据创建js文件
地图数据下载:https://datav.aliyun.com/portal/school/atlas/area_selector
3、在组件中获取地图矢量数据(引用数据json)
4、使用地图数据创建地图
5、百度地图开发平台:https://lbsyun.baidu.com/
在这里插入图片描述

chinamap.js

About.vue
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";
import { mapdata } from "../assets/chinamap.js"

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 注册当前使用的地图名
        echarts.registerMap("chinaMap", mapdata);

        // 配置项
        let options = {
            // 地理坐标组件
            geo: {
                type: "map",
                map: "chinaMap",
                // 平移缩放
                roam: true,
                zoom: 10,
                center: [116.402464, 39.915794]
            }
        };
        // 设置配置项
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
地图标记设置与效果
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";
import { mapdata } from "../assets/chinamap.js"

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 注册当前使用的地图名
        echarts.registerMap("chinaMap", mapdata);

        // 配置项
        let options = {
            // 地理坐标组件
            geo: {
                type: "map",
                map: "chinaMap",
                // 平移缩放
                roam: true,
                // zoom: 10,
                // center: [116.402464, 39.915794]
                label: {
                    show: true,
                    color: "#ff6600",
                    fontSize: 10,
                },
                itemStyle: {
                    areaColor: "green"
                }
            }
        };
        // 设置配置项
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>
地图散点图
<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";
import { mapdata } from "../assets/chinamap.js"

export default {

    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 注册当前使用的地图名
        echarts.registerMap("chinaMap", mapdata);

        // 配置项
        let options = {
            // 地理坐标组件
            geo: {
                type: "map",
                map: "chinaMap",
                // 平移缩放
                roam: true,

            },
            series: [
                // 散点图
                {
                    type: "scatter",
                    data: [
                        {
                            // 数据项名称
                            name: "北京",
                            value: [
                                116.46,
                                39.92,
                                4000
                            ],
                        }
                    ],
                    coordinateSystem: "geo",
                    symbolSize: 30,
                    label: {
                        show: true,
                    },
                },
                // 涟漪效果散点图
                {
                    type: "effectScatter",
                    coordinateSystem: "geo",
                    data: [
                        {
                            name: "西安",
                            value: [
                                108.95,
                                34.26
                            ]
                        }
                    ],
                    // 设置涟漪效果的相关配置
                    rippleEffect: {
                        // 波纹数量
                        number: 2,
                        scale: 4,
                    },
                    itemStyle: {
                        color: "red"
                    }
                }
            ]
        };
        // 设置配置项
        vchart.setOption(options);
    }
}
</script>
<style>
#about {
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
</style>

2.15、图标自适应大小

<template>
    <!-- echarts的容器,默认宽高是0,如果不进行设置,页面是不显示的 -->
    <div id="about" ref="vcharts"></div>
</template>
<script>
// 1、引入echarts
import * as echarts from "echarts";

export default {
    mounted() {
        // 2、初始化echarts
        let vchart = echarts.init(this.$refs.vcharts);
        // 设置数据
        let xData = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
        let dataA = [130, 25, 234, 164, 89, 188, 79];
        let dataB = [60, 215, 124, 164, 111, 288, 190];
        let dataC = [90, 87, 77, 164, 299, 88, 179];
        let dataD = [240, 85, 478, 527, 333, 142, 100];
        // 配置项
        let option = {
            xAxis: {
                type: "category",
                data: xData
            },
            yAxis: {
                type: "value"
            },
            series: [
                {
                    name: "美食",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataA,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },
                {
                    name: "日化",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataB,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },
                {
                    name: "数码",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataC,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },
                {
                    name: "家电",
                    type: "line",
                    // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                    stack: "num",
                    data: dataD,
                    // 样式填充
                    areaStyle: {},
                    // 选中高亮状态
                    emphasis: {
                        // 聚焦当前的区域高亮
                        focus: "series"
                    },
                },
            ]
        };
        // 设置配置项
        vchart.setOption(option);
        // 监听页面大小的改变
        window.addEventListener("resize", () => {
            vchart.resize();
        });
    }
}
</script>
<style>
#about {
    width: 100%;
    height: 500px;
    border: 1px solid red;
}
</style>

2.16、加载动画效果

安装json-server
npm install -g json-server
模拟数据

新建src/mock/data.json

{
   "one": [
        { "value": 67, "name": "美食", "itemStyle": { "normal": { "color": "rgb(1,175,80)" } } },
        { "value": 175,"name": "日化", "itemStyle": { "normal": { "color": "rgb(255,175,80)" } } },
        { "value": 40, "name": "数码", "itemStyle": { "normal": { "color": "rgb(1,0,80)" } } },
        { "value": 89, "name": "家电", "itemStyle": { "normal": { "color": "rgb(30,50,70)" } } }
    ]
}
启动json-server

在src/mock/执行

json-server --watch data.json --port 8090
访问
http://localhost:8090/one
安装axios
npm install --save axios
使用axios
               data: dataA,
                // 样式填充
                areaStyle: {},
                // 选中高亮状态
                emphasis: {
                    // 聚焦当前的区域高亮
                    focus: "series"
                },
            },
            {
                name: "日化",
                type: "line",
                // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                stack: "num",
                data: dataB,
                // 样式填充
                areaStyle: {},
                // 选中高亮状态
                emphasis: {
                    // 聚焦当前的区域高亮
                    focus: "series"
                },
            },
            {
                name: "数码",
                type: "line",
                // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                stack: "num",
                data: dataC,
                // 样式填充
                areaStyle: {},
                // 选中高亮状态
                emphasis: {
                    // 聚焦当前的区域高亮
                    focus: "series"
                },
            },
            {
                name: "家电",
                type: "line",
                // 数据堆叠:同类型的数据需要匹配相同的stack属性值
                stack: "num",
                data: dataD,
                // 样式填充
                areaStyle: {},
                // 选中高亮状态
                emphasis: {
                    // 聚焦当前的区域高亮
                    focus: "series"
                },
            },
        ]
    };
    // 设置配置项
    vchart.setOption(option);
    // 监听页面大小的改变
    window.addEventListener("resize", () => {
        vchart.resize();
    });
}

}


### 2.16、加载动画效果

#### 安装json-server

npm install -g json-server


#### 模拟数据

新建src/mock/data.json

{
“one”: [
{ “value”: 67, “name”: “美食”, “itemStyle”: { “normal”: { “color”: “rgb(1,175,80)” } } },
{ “value”: 175,“name”: “日化”, “itemStyle”: { “normal”: { “color”: “rgb(255,175,80)” } } },
{ “value”: 40, “name”: “数码”, “itemStyle”: { “normal”: { “color”: “rgb(1,0,80)” } } },
{ “value”: 89, “name”: “家电”, “itemStyle”: { “normal”: { “color”: “rgb(30,50,70)” } } }
]
}


#### 启动json-server

在src/mock/执行

json-server --watch data.json --port 8090


#### 访问

http://localhost:8090/one


#### 安装axios

npm install --save axios


#### 使用axios

转载请注明出处或者链接地址:https://www.qianduange.cn//article/5711.html
标签
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!