VUE笔记(十)Echarts

一、Echarts简介

1、什么是echarts

ECharts是一款基个基于 JavaScript 的开源可视化图表库

官网地址:Apache ECharts

国内镜像:ISQQW.COM x ECharts 文档(国内同步镜像) - 配置项

示例:echarts图表集

2、第一个Echarts

  • 安装echarts依赖包

npm i echarts
  • 引入Echarts

<template>
   <div>
        <div id="chart" class="box" ref="main"></div>
   </div>
</template>
​
<script>
import * as echarts from 'echarts'
export default {
    mounted(){
        let options={
            title:{
                text:'在读学生学历统计'
            },
            xAxis:{//X轴的设置
                data:['初中','高中','大专','本科','硕士','博士']
            },
            yAxis:{},//Y轴的设置
            series:[//数据的设置
                {
                    name:'销量',
                    type:'bar',//设置为柱状图
                    data:[10,10,35,30,10,5]
                }
            ]
        }
        let mychart=echarts.init(this.$refs.main)
        mychart.setOption(options)
    }
}
</script>
​
<style>
    .box{
        width: 600px;
        height: 400px;
        background-color: #ffc;
    }
</style>

二、柱状图

1、常见效果设置

  • 最大值、最小值、平均值标记设置

series: [
     {
        name: seriesName,
        type: 'bar',
        data: [10,10,35,30,10,5],
        markPoint:{
            data:[
                {
                  type:'max',name:'最大值'
                },
                {
                  type:'min',name:'最小值'
                }
             ]
         },
         markLine:{
             data:[
                {
                  type:'average',name:'平均值'
                }
             ]
         }
      }
 ]
  • 图形上文字标签的设置

 series: [
     {
        name: seriesName,
        type: 'bar',
        data: [10,10,35,30,10,5],
        label:{
            show:true,
            color:'#ff0000',
            backgroundColor:'springgreen',
            width:20,
            height:20
         }
      }
 ]
  • 图形样式的设置

 series: [
     {
        name: seriesName,
        type: 'bar',
        data: [10,10,35,30,10,5],
        itemStyle:{
            color:'#0cc',
            shadowBlur:15,
            opacity:.8,
            shadowOffsetX:15
         }
      }
 ]
  • 设置图形的宽度

 series: [
     {
        name: seriesName,
        type: 'bar',
        data: [10,10,35,30,10,5],
        barWidth:15
      }
 ]
  • 更改x轴和y轴的角色

const options={
    xAxis: {},
    yAxis: { data:[10,10,35,30,10,5] },
}

2、title相关设置

属性类型含义
textstring主标题文本
linkstring主标题超链接
textStyleobjectcolor:主标题文字的颜色。 fontStyle:主标题的风格 fontWeight:主标题字体的粗细
backgroundColorColor背景色
borderColorColor边框颜色
borderRadiusnumber|Array圆角半径
let options={
     title:{
         text:'在读学生学历统计',
         link:'http://www.zhaijizhe.cn/studentSys',
         textStyle:{
             color:'#2ff',
             fontStyle:'italic',
             fontWeight:'bold'
         },
         backgroundColor:'#ccc',
         borderWidth:1,
         borderColor:'#bbb',
         borderRadius:5,
         padding:10    
      }
}

3、tooltip的相关配置

tooltip:提示框组件,用于配置鼠标滑过或点击图标时的显示框

  • 触发类型:trigger

  • 触发时机:triggerOn

  • 格式化:formatter

const options={
    tooltip:{
        show:true,
        triggerOn:'click',
        formatter:`{b}的人数是{c}人`
     }  
}

4、toolbox的相关配置

toolbox:ECharts提供的工具栏:内置有导出图片,数据视图,动态类型切换,数据区域缩放,重置五个工具

const options={
   toolbox:{
      show:true,
      feature:{
          saveAsImage:{//导出图片
             show:true
          },
          restore:{//重置,配置项还原
             show:true
          },
          dataView:{//数据视图
             show:true
          },
          magicType: {//动态类型切换
             type: ['line', 'bar']
          },
          dataZoom:{//数据区域缩放
          	show:true
          }
    }
}

5、legend的相关配置

legend:图例,用于筛选系列,需要和series配置使用

  • legend中的data是一个数组

  • legend中的data的值需要和series数组中某组数据的name值一致。

let options = {
      tooltip: {
        show: true,
        triggerOn: "click",
        formatter: `{b}的人数是{c}人`,
      },
      toolbox: {
        show: true,
        feature: {
          saveAsImage: {
            show: true,
          },
          restore: {
            show: true,
          },
          dataView: {
            show: true,
          },
          magicType: {
            type: ["line", "bar"],
          },
          dataZoom: {
            show: true,
          },
        },
      },
      xAxis: {
        data: ["可口可乐", "百事可乐", "芬达", "红牛", "加多宝", "哇哈哈"],
      },
      yAxis: {},
      legend:{
        show:true,
        data:["1月份销量","2月份销量","3月份销量"]
      },
      series: [
        {
          name: "1月份销量",
          type: "bar",
          data: [10, 10, 35, 30, 10, 5],
          itemStyle: {
            color: "#0cc",
            shadowBlur: 15,
            opacity: 0.8,
            shadowOffsetX: 15,
          },
          barWidth: 15,
        },
        {
          name: "2月份销量",
          type: "bar",
          data: [20, 5, 65, 20, 15, 25],
          itemStyle: {
            color: "#cfc",
            shadowBlur: 15,
            opacity: 0.8,
            shadowOffsetX: 15,
          },
          barWidth: 15,
        },
        {
          name: "3月份销量",
          type: "bar",
          data: [25, 15, 95, 20, 25, 35],
          itemStyle: {
            color: "#0a8",
            shadowBlur: 15,
            opacity: 0.8,
            shadowOffsetX: 15,
          },
          barWidth: 15,
        },
      ],
    };

三、折线图

1、基本配置

import * as echarts from 'echarts'
export default {
    mounted(){
       let options={
         title:{
            text:'最近1小时访问情况'
         },
         xAxis:{
            data:['16:00','16:05','16:10','16:15','16:20','16:25','16:30','16:35','16:40','16:45','16:50','16:55']
         },
         yAxis:{},
         series:[
            {
                name:'访问量',
                type:'line',
                data:[40,39,30,40,50,40,30,20,80,20,15,32]
            }
         ]
       }
       let chart=echarts.init(this.$refs.box)
       chart.setOption(options)
    }
}

2、常见效果设置

<template>
   <div ref="box" class="chart"></div>
</template>

<script>
import * as echarts from 'echarts'
export default {
    mounted(){
       let options={
         title:{
            text:'最近1小时访问情况'
         },
         xAxis:{
            data:['16:00','16:05','16:10','16:15','16:20','16:25','16:30','16:35','16:40','16:45','16:50','16:55']
         },
         yAxis:{},
         legend:{
            data:['浏览量','访问量']
         },
         tooltip:{
             show:true,
             trigger:'axis'
         },
         series:[
            {
                name:'浏览量',
                type:'line',
                data:[40,39,30,40,50,40,30,20,50,20,15,32],
                smooth:true,//开启平滑曲线
                areaStyle:{
                    color:'rgba(159,216,255,.9)' //填充区域颜色
                },
                lineStyle:{ //线条样式设置
                    color:'rgba(159,216,255)', 
                    width:2
                },
                symbol:'none' //去掉线条小圆点
            },
            {
                name:'访问量',
                type:'line',
                data:[20,19,10,20,25,20,15,10,22,10,9,16],
                smooth:true,
                areaStyle:{
                    color:'rgba(120,215,190,.9)'
                },
                symbol:'none'
                
            }
         ]
       }
       let chart=echarts.init(this.$refs.box)
       chart.setOption(options)
    }
}
</script>

<style>
    .chart{
        width: 1000px;
        height: 400px;
    }
</style>

四、饼状图

1、基本设置

<template>
    <div>
        <div ref="box" class="chart"></div>
    </div>
</template>

<script>
import * as echarts from 'echarts' 
export default {
    mounted(){
        let options={
            series:[
                {
                    type:'pie',
                    data:[
                        {name:'口碑',value:815},
                        {name:'知乎',value:515},
                        {name:'百度',value:115},
                        {name:'美团',value:45},
                        {name:'地图',value:15},
                    ]
                }
            ]
        }
        let chart=echarts.init(this.$refs.box)
        chart.setOption(options)
    }
}
</script>

2、常见效果设置

<script>
import * as echarts from "echarts";
export default {
  mounted() {
    let options = {
      series: [
        {
          type: "pie",
          data: [
            { name: "口碑", value: 815 },
            { name: "知乎", value: 515 },
            { name: "百度", value: 115 },
            { name: "美团", value: 45 },
            { name: "地图", value: 15 },
          ],
          label: {
            show: true,
            formatter: function (arg) {
              return (
                arg.name + "部分消费了" + arg.value + "元\n" + arg.percent + "%"
              );
            },
          },
          radius:['60%','80%'],//内外径占比
          roseType: "radius",//以扇形圆心角比例展现
          selectedMode: "single",//选中的模式
        },
      ],
    };
    let chart = echarts.init(this.$refs.box);
    chart.setOption(options);
  },
};
</script>

五、地图

1、基本设置

地图数据的下载地址:DataV.GeoAtlas地理小工具系列

打开网址,通过右下角JSON API下载数据

在src/assets/data/chinaMap.js中存储数据

export const mapData=数据

在组件中

<template>
  <div class="chart" ref="box" style="width:1000px;height:800px"></div>
</template>

<script>
import * as echarts from "echarts";
import { mapData } from "../assets/data/chinaMap.js";
export default {
  mounted() {
    //地图注册
    echarts.registerMap("chinaMap", mapData);
    let options = {
      geo: {//地理坐标系属性
        type: "map",
        map: "chinaMap",
        itemStyle:{
            areaColor:'#ddf',
            opacity:.7
        }
        zoom: 5,
        roam:true,
         label:{show:true,fontSize: 10},
      },
      visualMap: {//是视觉映射组件,用于进行视觉编码,也就是将数据映射到视觉元素(视觉通道)
        min: 100,
        max: 3000,
        text: ["高", "低"],
        realtime: false,
        calculable: true,
        inRange: {//颜色过渡
          color: ["lightskyblue", "yellow", "orangered"],
        },
      },
      series: [
        {
          name: "最小风险指数",
          type: "map",
          geoIndex: 0,
          data: [
            { name: "北京市", value: 15477.48 },
            { name: "天津市", value: 31686.1  },
            { name: "上海市", value: 21686.1  },
            { name: "重庆市", value: 61686.1  },
            { name: "河北省", value: 81686.1  },
            { name: "陕西省", value: 800  },
            { name: "河南省", value: 100  },
          ],
        },
      ],
    };
    let chart = echarts.init(this.$refs.box);
    chart.setOption(options);
  },
};
</script>

<style>
.chart {
  width: 800px;
  height: 800px;
}
</style>

2、显示南海诸岛

如果要让南海诸岛显示出来,可以在注册地图的时候,把registerMap()的第一个参数必须设置为china就可以显示了

 echarts.registerMap("china", mapData);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/90522.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型之五 谷歌Gemini

近十年来谷歌引领着人工智能方向的发展&#xff0c;从TensorFlow到TPU再到Transformer&#xff0c;都是谷歌在引领着&#xff0c;然而&#xff0c;在大语言模型上&#xff0c;却被ChatGPT&#xff08;OpenAI&#xff09;抢了风头&#xff0c;并且知道GPT-4&#xff08;OpenAI&a…

红蓝攻防:浅谈削弱WindowsDefender的各种方式

前言 随着数字技术的日益进步&#xff0c;我们的生活、工作和娱乐越来越依赖于计算机和网络系统。然而&#xff0c;与此同时&#xff0c;恶意软件也日趋猖獗&#xff0c;寻求窃取信息、破坏系统或仅仅为了展现其能力。微软Windows&#xff0c;作为世界上最流行的操作系统&…

2023年03月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:和数 给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。 时间限制:10000 内存限制:65536 输入 共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个…

商品搜索网:连接您与各类商品的桥梁

导语&#xff1a;在如今信息爆炸的时代&#xff0c;购物已经不再是传统的实体店购买&#xff0c;而是通过互联网实现的线上购物方式。而要实现高效的线上购物&#xff0c;商品搜索引擎则成为我们的得力助手。作为国内垂直的商品搜索之一&#xff0c;为中国用户提供全面的数码电…

咸鱼之王俱乐部网站开发

我的俱乐部 最新兑换码 *注意区分大小写&#xff0c;中间不能有空格&#xff01; APP666 HAPPY666 QQ888 QQXY888 vip666 VIP666 XY888 app666 bdvip666 douyin666 douyin777 douyin888 happy666 huhushengwei888 taptap666 周活动 宝箱周 宝箱说明 1.木质宝箱开启1个…

缺页异常与copy-on-write fork

缺页异常需要什么 当发生缺页异常时&#xff0c;内核需要以下信息才能响应这个异常&#xff1a; 出错的虚拟地址&#xff08;引发缺页异常的源&#xff09; 当一个用户程序触发了缺页异常&#xff0c;会切换到内核空间&#xff0c;将出错的地址放到STVAL寄存器中&#xff0c;…

AndroidAGP8.1.0和JDK 17迁移之旅

AndroidAGP8.1.0和JDK 17迁移之旅 前言&#xff1a; 由于我最近写demo的直接把之前的项目从AGP4.2.2升级到8.1.0引发了一些列问题&#xff0c;这里记录一下&#xff0c;前面讲解过迁移DSL方式遇到的问题&#xff0c;这次升级8.1.0也比之前顺利多了&#xff0c;想看DSL迁移的可…

LeetCode——有效的括号

这里&#xff0c;我提供一种用栈来解决的方法&#xff1a; 思路&#xff1a;栈的结构是先进后出&#xff0c;这样我们就可以模拟栈结构了&#xff0c;如果是‘&#xff08;’、‘{’、‘[’任何一种&#xff0c;直接push进栈就可以了&#xff0c;如果是‘}’、‘&#xff09;’…

常见前端面试之VUE面试题汇总七

20. 对 vue 设计原则的理解 1.渐进式 JavaScript 框架&#xff1a;与其它大型框架不同的是&#xff0c;Vue 被设计 为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上 手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代化的…

2023有哪些更好用的网页制作工具

过去&#xff0c;专业人员使用HTMLL、CSS、Javascript等代码手动编写和构建网站。现在有越来越多的智能网页制作工具来帮助任何人实现零代码基础&#xff0c;随意建立和设计网站。在本文中&#xff0c;我们将向您介绍2023年流行的网页制作工具。我相信一旦选择了正确的网页制作…

OpenGL —— 2.5、绘制第一个三角形(附源码,glfw+glad)(更新:纹理贴图)

源码效果 C源码 纹理图片 需下载stb_image.h这个解码图片的库&#xff0c;该库只有一个头文件。 具体代码&#xff1a; vertexShader.glsl #version 330 corelayout(location 0) in vec3 aPos; layout(location 1) in vec3 aColor; layout(location 2) in vec2 aUV;out ve…

如何搭建智能家居系统并通过内网穿透实现远程控制家中设备

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 前言 Home Assistant&…

(三)Linux中卸载docker(非常详细)

docker 卸载 使用yum安装docker 如需卸载docker可以按下面步骤操作&#xff1a; 1、停止docker服务 systemctl stop docker 2、查看yum安装的docker文件包 yum list installed |grep docker 3、查看docker相关的rpm源文件 rpm -qa |grep docker 4、删除所有安装的docke…

【JVM 内存结构丨栈】

栈 -- 虚拟机栈 简介定义压栈出栈局部变量表操作数栈方法调用特点作用 本地方法栈&#xff08;C栈&#xff09;定义栈帧变化作用对比 主页传送门&#xff1a;&#x1f4c0; 传送 简介 栈是用于执行线程的内存区域&#xff0c;它包括局部变量和操作数栈。 Java 虚拟机栈会为每…

MySql学习4:多表查询

教程来源 黑马程序员 MySQL数据库入门到精通&#xff0c;从mysql安装到mysql高级、mysql优化全囊括 多表关系 各个表结构之间存在各种关联关系&#xff0c;基本上分为三种&#xff1a;一对多&#xff08;多对一&#xff09;、多对多、一对一 一对多&#xff08;多对一&…

学习设计模式之观察者模式,但是宝可梦

前言 作者在准备秋招中&#xff0c;学习设计模式&#xff0c;做点小笔记&#xff0c;用宝可梦为场景举例&#xff0c;有错误欢迎指出。 观察者模式 观察者模式定义了一种一对多的依赖关系&#xff0c;一个对象的状态改变&#xff0c;其他所有依赖者都会接收相应的通知。 所…

常见前端面试之VUE面试题汇总八

22. Vue 子组件和父组件执行顺序 加载渲染过程&#xff1a; 1.父组件 beforeCreate 2.父组件 created 3.父组件 beforeMount 4.子组件 beforeCreate 5.子组件 created 6.子组件 beforeMount 7.子组件 mounted 8.父组件 mounted 更新过程&#xff1a; 1. 父组件 befor…

安全防护产品对接流程讲解

服务器被攻击了&#xff0c;怎么对接高防产品呢&#xff0c;需要提供什么&#xff1f; 1、配置转发规则&#xff1a;提供域名、IP、端口&#xff0c;由专业技术人员为您配置转发协议/转发端口/源站IP等转发规则&#xff0c;平台会分配该线路独享高防IP。 2、修改DNS解析&…

大数据:AI大模型对数据分析领域的颠覆(文末送书)

随着数字化时代的到来&#xff0c;大数据已经成为了各行各业中不可或缺的资源。然而&#xff0c;有效地分析和利用大数据仍然是一个挑战。在这个背景下&#xff0c;OpenAI推出的Code Interpreter正在对数据分析领域进行颠覆性的影响。 如何颠覆数据分析领域&#xff1f;带着这…

java八股文面试[JVM]——双亲委派模型

1.当AppClassLoader去加载一个class时&#xff0c;它首先不会自己去尝试加载这个类&#xff0c;而是把类加载请求委托给父加载器ExtClassLoader去完成。 2.当ExtClassLoader去加载一个class时&#xff0c;它首先也不会去尝试加载这个类&#xff0c;而是把类加载请求委托给父加载…