首页 > 其他分享 >一篇搞定ECharts的基本使用,赶快收藏起来学习吧~

一篇搞定ECharts的基本使用,赶快收藏起来学习吧~

时间:2024-03-23 11:59:55浏览次数:29  
标签:搞定 一篇 name color visualMap 设置 组件 ECharts 255

准备工作

引入

声明一个有宽高的dDOM元素

echarts.init(DOM)

option配置对象

echarts.setOptions(option)

基础配置

option类似于一个容器,那么里面的属性就相当于组件:

xAxis(直角坐标系 X 轴)、yAxis(直角坐标系 Y 轴)、grid(直角坐标系底板)、angleAxis(极坐标系角度轴)、radiusAxis(极坐标系半径轴)、polar(极坐标系底板)、geo(地理坐标系)、dataZoom(数据区缩放组件)、visualMap(视觉映射组件)、tooltip(提示框组件)、toolbox(工具栏组件)、series(系列)等。

在这里插入图片描述

serise

type: ‘line’ | ‘bar’ | ‘pie’ | ‘scatter’ // 折线图、柱状图、饼图、散点图

name: 系列的名字

stack: 相同的值相加

option

option = {
    color: ['pink','red','green'],//设置线条颜色,数组形式
	title: {    //设置图标的标题
		text: ''
	},
	tooltip: {		//图表的提示框组件
		trigger: 'axis'		//触发方式  //item:散点图、饼图  //axis: 柱状图、折线图(坐标轴触发)
	},
    legend: {		//图例组件,若series里有name,则legend可以忽略
        data: ['邮件营销','联盟广告']
    },
    toolbox: {		//工具箱组件  可以另存为图片等功能
        feature: {
            saveAsImage:{}  //导出图片(saveAsImage) //数据视图(dataView)、动态类型切换(magicType)、数据区域缩放(dataZoom)、重置(restore)
        }
    },
    grid: {		//网格配置(与坐标)  可以控制线性图 柱状图 图表大小
        left: '3%',		//与DOM元素的left的距离
        right: '4%',
        bottom: '3%',
        show: true,		//是否显示直角坐标系网格
        containLabel: true		//是否显示y轴刻度标签
    },
    xAxis: {		//设置x轴的相关配置
        type: 'category',	//坐标轴类型
        boundaryGap: false,		//是否线条与坐标轴有缝隙
        data: ['周一','周二','周三']
    },
    yAxis: {
        type: 'value'		//为值
    },
    series: [		//系列图表配置 决定显示哪种类型的图表  //里有name,则legend里面的data值可以删掉
        {
            name: '邮件营销',	
            type: 'line',
            stack: '总量',	//相同的值,会数据堆叠
            data: [120, 132,101]
        },
        {
            name: '联盟广告',
            type: 'line',
            stack: '总量'
            data: [220, 137,191]
        }
    ]
}

在这里插入图片描述

定制柱状图
var option = {
	...
    tooltip: {
      ...
      axisPointer: {	// 坐标轴指示器配置项
          type: "cross",  //line(直线指示器)、shadow(阴影指示器)、none(无指示器)、cross(十字准星指示器)
          crossStyle: {
              color: "red",   //线的颜色
          },
      },
    },
	color: ["#b4fe98"],   // 调色盘,改变柱子占比的显示颜色
    xAxis: [{
        ...
        boundaryGap: false, // 去除轴内间距
        axisPointer: {    //指示器
          type: "line",   //line(直线指示器)、shadow(阴影指示器)、none(无指示器)
          
        },
        splitLine: {
          show: false, // 是否显示分隔线
        },
        axisLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.2)', // X 轴线颜色
          },
        },
        axisLabel: {
          ...
          textStyle: {
            color: 'rgba(255,255,255,.6)', // 文本颜色
            fontSize: 12,
          },
          show: false, // 不显示刻度标签
        },
        }],
    yAxis: [{	
      ...
      axisTick: { show: false }, // 去除刻度
      axisLine: false, // 是否显示刻度线
      inverse: true, // 是否反向坐标轴
      min: 0,   //y轴最小值
      max: 8000,    //y轴最大值
      axisLabel: {
        formatter: "{value} 万",    //是刻度标签的内容格式器
      },
    },],
	series: {
        ...
        {
            name: ''
            barWidth: 30, // 设置柱子的宽度
            emphasis: {
              focus: "series", // 高亮的图表样式和标签样式
            },
            itemStyle: {
              color: "#a2d2ff", // 设置柱子的颜色
              borderRadius: [6, 0, 0, 6], // 设置圆角边框
              normal: {		// 设置拐点颜色以及边框
                color: '#0184d5',
                borderColor: 'rgba(221, 220, 107, .1)',
                borderWidth: 12,
              },
            },
            smooth: true, // 线是圆滑
            symbol: 'circle', // 设置拐点为小圆点
            symbolSize: 5, // 拐点大小
            showSymbol: false, // 开始不显示拐点, 鼠标经过显示
        	// 填充区域
        areaStyle: {
          normal: {
            // 渐变色,只需要复制即可
            color: new echarts.graphic.LinearGradient(0, 0, 0, 1,
              [
                {
                  offset: 0,	// 渐变色的起始颜色
                  color: 'rgba(1, 132, 213, 0.4)',
                },
                {
                  offset: 0.8,	// 渐变线的结束颜色
                  color: 'rgba(1, 132, 213, 0.1)',
                },
              ],
              false
            ),
            shadowColor: 'rgba(0, 0, 0, 0.1)',
          },
        },
        },
        showBackground: true, // 显示背景颜色
        backgroundStyle: {
            color: "#EAEAEA", // 柱子的背景颜色
        },
    }
}
定制线图
var option = {
	...
    tooltip: {
      trigger: 'axis',
      axisPointer: {
        lineStyle: {
          color: '#dddc6b',
        },
      },
    },
    legend: {
      top: '0%',
      textStyle: {
        color: 'rgba(255,255,255,.5)',
        fontSize: '12',
      },
    },
    xAxis: [{
        ...
        boundaryGap: false, // 去除轴内间距
        axisLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.2)', // X 轴线颜色
          },
        },
        axisLabel: {
          ...
          textStyle: {
            color: 'rgba(255,255,255,.6)', // 文本颜色
            fontSize: 12,
          },
        },
      }],
    yAxis: [{	
      ...
      axisTick: { show: false }, // 去除刻度
        axisLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.1)', // Y 轴线颜色
          },
        },
        axisLabel: {
          textStyle: {
            color: 'rgba(255,255,255,.6)', // 文字颜色
            fontSize: 12, // 文字大小
          },
        },
        splitLine: {
          lineStyle: {
            color: 'rgba(255,255,255,.1)', // 分割线颜色
          },
        },
    }],
	series: {
      ...
      {
        name: '播放量',
        type: 'line',
        smooth: true, // 线是圆滑
        symbol: 'circle', // 设置拐点为小圆点
        symbolSize: 5, // 拐点大小
        showSymbol: false, // 开始不显示拐点, 鼠标经过显示
        lineStyle: {  // 单独修改线的样式
          normal: {
            color: '#0184d5',
            width: 2,
          },
        },
        areaStyle: {	// 填充区域
          normal: {
            // 渐变色,只需要复制即可
            color: new echarts.graphic.LinearGradient(
              0,
              0,
              0,
              1,
              [
                {
                  offset: 0,
                  // 渐变色的起始颜色
                  color: 'rgba(1, 132, 213, 0.4)',
                },
                {
                  offset: 0.8,
                  // 渐变线的结束颜色
                  color: 'rgba(1, 132, 213, 0.1)',
                },
              ],
              false
            ),
            shadowColor: 'rgba(0, 0, 0, 0.1)',
          },
        },
        // 设置拐点颜色以及边框
        itemStyle: {
          normal: {
            color: '#0184d5',
            borderColor: 'rgba(221, 220, 107, .1)',
            borderWidth: 12,
          },
        },
    }
}
饼形图
option = {
  color: [
    "#7DCEA0",
    "#A9DFBF",
    "#F9E79F",
  ],
  title: {
    text: "全球新冠疫情部分数据",
    left: "center",
    textStyle: {
      color: "#fff",
    },
  },
  legend: {
    top: "bottom",
  },
    // 删去 series.itemStyle.borderRadius 配置
  label: {
     fontSize: 15,
  },
  labelLine: {
    // 连接到图表的线长度
    length: 10,
    // 连接到文字的线长度
    length2: 15,
  },
  series: [
    {
      name: "面积模式",
      type: "pie",
      radius: [50, 250], // 饼图的半径。
      center: ["50%", "50%"], // 饼图中心坐标
      roseType: "area", // 设置是否展示成南丁格尔图	//radius 圆心角不同 //area圆心角同
      itemStyle: {
        borderRadius: 8, //指定饼图扇形区块的内外圆角半径
      },
      data: [
        { value: 109, name: "巴林" },
        { value: 117, name: "马来西亚" },
        { value: 160, name: "新加坡" },
      ],
    },
  ],
};
散点图
var option = {
  // 只给出修改部分的代码
  backgroundColor: "#2e4c6d",
  color: ["#ffC4E1", "#71DFE7"],
  legend: {
    data: ["晴天", "雨天"],
    textStyle: {
      color: "#fff",
      fontSize: 16,
    },
  },
  xAxis: {
    nameTextStyle: {
      color: "#fff",
      fontSize: 14,
    },
    axisLine: {
      lineStyle: {
        color: "#777",
      },
    },
    axisTick: {
      lineStyle: {
        color: "#777", // 刻度线的颜色
      },
    },
    axisLabel: {
      formatter: "{value}",
      textStyle: {
        color: "#fff",
      },
    },
  },
  yAxis: {
    name: "心情指数",
    nameTextStyle: {
      color: "#fff",
      fontSize: 16,
    },
    axisLine: {
      lineStyle: {
        color: "#777",
      },
    },
    axisTick: {
      lineStyle: {
        color: "#777",
      },
    },
    splitLine: {
      show: false,
    },
    axisLabel: {
      textStyle: {
        color: "#fff",
      },
    },
  },
  visualMap: [
    {
      left: "right", // 组件在图的右侧显示
      top: "40%", // 组件与顶部的距离
      dimension: 2, // 映射数据的维度
      itemWidth: 30, // 组件的宽度
      itemHeight: 120, // 组件的高度
      calculable: true, // 是否显示拖拽用的手柄
      precision: 0.1, // 数据展示的小数精度
      text: ["指数范围"], // 组件的文本内容
      textGap: 30, // 两端文字主体之间的距离
      textStyle: {
        color: "#fff",
      },
      controller: {
        inRange: {
          color: ["#77e4d4"],
        },
      },
    },
  ],
  series: [
    {
      name: "晴天",
    },
    {
      name: "雨天",
    },
  ],
};

异步数据加载

事件处理

myChart.on("事件名称", 回调函数);

常见事件:

  • click:点击鼠标时触发。
  • dblclick:在同一个元素上双击鼠标时触发。
  • mouseup:释放按下的鼠标键时触发。
  • mousedown:按下鼠标键时触发。
  • mousemove:当鼠标在一个节点内部移动时触发。
  • mouseover:鼠标进入一个节点时触发。
  • mouseout:鼠标离开一个节点时触发。
  • globalout:鼠标移出坐标系触发。
  • contextmenu:打开上下文菜单时被触发。

eg:

myChart.on("click", function (params) {
    console.log(params.name);  //可获得相应区域数据名
    window.open("https://www.lanqiao.cn/courses/?category=" + params.name);
});

一些交互组件

title
legend、

legend.orient 可以设置图例的布局朝向,其默认值为水平(horizontal),可以修改为垂直(vertical)。

通过 legend.toplegend.bottomlegend.leftlegend.right 设置图例距离容器上下左右的距离。

visualMap

visualMap 是视觉映射组件,用来进行视觉编码,也就是将数据映射到视觉元素。

通过 visualMap.minvisualMap.max 可以指定 visualMap 组件的最小值和最大值。

通过 visualMap.dimension 可以到指定数据的维度,也就是说使用哪个维度的数据去映射到 visualMap 组件上(其默认映射数据的最后一列)。数据的每一列为一个维度,可以看一看下面这个图。

图片描述

通过 visualMap.orient 设置 visualMap 组件的放置方向(其默认为垂直 vertical),可以设置为水平 horizontal。

通过 visualMap.topvisualMap.bottomvisualMap.leftvisualMap.right 可以设置 visualMap 组件距离容器上下左右的位置。

通过 visualMap.text 设置 visualMap 组件两端的文字。

通过 visualMap.calculable 设置是否显示拖拽手柄。

通过 visualMap.inRange 来定义选中范围中的视觉元素,可选的视觉元素中最常用的是 color,用于设置图元的颜色。

timeline

timeline 用于在多个 ECharts option 之间进行切换、播放等功能。

dataZoom

dataZoom 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。

常见有两种类型,分为:

  • 内置型数据区域缩放组件(dataZoom-inside):内置在坐标系中,用户可以通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系。
  • 滑动条型数据区域缩放组件(dataZoom-slider):有单独的滑动条,用户可以在滑动条上进行缩放或漫游。

我们来说一说该组件常用的配置项。

通过 dataZoom.type 可以设置缩放组件的类型,一般值为 slider、inside。

通过 dataZoom.xAxisIndexdataZoom.yAxisIndex 可以设置组件控制的 x 轴和 y 轴。

通过 dataZoom.startdataZoom.end 可以设置数据窗口范围的开始百分比和结束百分比。

写在最后:这个是在蓝桥官网上学习所做的笔记,因此有些图片内容来自蓝桥官网

标签:搞定,一篇,name,color,visualMap,设置,组件,ECharts,255
From: https://blog.csdn.net/weixin_72707764/article/details/136805750

相关文章

  • echarts 实现漏斗图中心、右侧同时显示
    效果图:代码实现:letoption={ tooltip:{ trigger:'item', formatter:'{b}:{c}%' }, labelLine:{ show:true }, series:[{ name:'漏斗', type:'funnel', top:10, ......
  • 一次性搞定!思源字体安装、使用及常见问题解答
    环境Windows11Pro23H2Microsoft365Word2402思源宋体:v2.002思源黑体:v2.0041.结论本人非专业字体工作者,个人建议,仅供参考;先说结论,链接以及详细说明见后文安装SC版本,无其余后缀HW,VF,CN等关于HW,思源宋体没有HW版本,个人实测,非HW版本,英文数字采用比例......
  • 【数据可视化】Echarts中的其它图表
    个人主页:zxctscl如有转载请先通知文章目录1.前言2.绘制散点图2.1绘制基本散点图2.2绘制两个序列的散点图2.3绘制带涟漪特效的散点图3.绘制气泡图3.1绘制标准气泡图3.2绘制各国人均寿命与GDP气泡图3.3绘制城市A、城市B、城市C三个城市空气污染指数气泡图......
  • 自动化构建Docker镜像的标准方法(一篇带你了解)
    Dockerfile是一个文本文件,开发者使用它来定义如何构建一个Docker镜像。它是自动化构建Docker镜像的标准方法,包含了用于构建镜像的一系列指令,这些指令会被Docker引擎按顺序逐行解析并执行。构建镜像时,通过在命令行中运行dockerbuild并指定Dockerfile所在的路径来创建......
  • 数据可视化-ECharts Html项目实战
    项目实践一.会员基本信息及消费能力对比分析1.训练要点掌握堆积柱状图的绘制。掌握标准条形图的绘制。掌握瀑布图的绘制。2.需求说明 “会员信息表.xlsx”文件记录了某鲜花店销售系统上的会员信息,具体内容包括会“华面员编号、姓名、性别、年龄、城市、入会方式、会......
  • C语言数据在内存中的存续:一篇文章让你秒懂基础!
    JAMES别扣了-CSDN博客......
  • 写论文也能嘎嘎香?用ChatGPT轻松搞定
    一、背景⭐⭐⭐点击直达⭐⭐⭐自从我开始用ChatGPT帮我写论文,效率简直翻了个倍,论文质量大大提升,还有更多时间去享受生活,真是嘎嘎香~二、简介注册即送ChatGPT3.5和4.0版本,每天都有免费使用次数,快来一起薅羊毛吧!三、功能介绍AI-3.5:搞定日常学术对话,满足你的大部分需求......
  • 一篇关于免费AI豆包自我介绍
    我是豆包,一个由字节跳动公司研发的智能聊天机器人。我的存在是为了与你建立连接,提供帮助和陪伴。我的训练基于大量的文本数据,这使我具备了广泛的知识和语言理解能力。无论是科学、历史、文化、艺术还是技术领域,我都有着一定的了解。无论你是对宇宙的奥秘充满好奇,还是对文学作......
  • VUE3 ECharts5 快速上手(附详细步骤)
    安装pnpminstallecharts引入EChartsimport*asechartsfrom'echarts';设置容器注意:虽然echarts可以在配置时设置宽高,但还是推荐在配置前直接为容器设置宽高<template><divid="main"class="echart-style"></div></template><style......
  • web项目部署,一篇就搞定!
    web部署的方式有很多,根据开发方式不同,部署方式也不同。最通用是docker部署,这个想必大家都熟悉。我们今天说另外一种。部署过程1、验证Jdk是否安装成功2、验证Tomcat是否安装成功3、验证Navicat是否能连上数据库4、创建数据库并导入数据库脚本(注意:它这里数据库名必须为:tomexam)......