首页 > 其他分享 >Echarts

Echarts

时间:2024-08-17 20:56:05浏览次数:11  
标签:name 数据 data value Echarts type echarts

echarts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts最初由百度团队开源,并于2018年初捐赠给Apache基金会,成为ASF孵化级项目。
1.echarts语法

title : 标题组件

title: {
  text: '标题信息'
}

tooltip : 提示框组件

// 图表的提示
tooltip:{
  trigger:"鼠标悬停时的提示信息",
  formatter: "提示框浮层内容格式器,支持字符串模板和回调函数两种形式"
},

trigger各个值进行分析:

‘axis’:坐标轴触发,主要在柱状图,折线图等会使用。 
'item':图形形状触发,主要用在散点图、饼图等无类目轴的图标中使用。
'none':什么都不触发。

legend : 图例组件

// 图例
legend:{
  data:['A', 'B', 'C', 'D']
},  

xAxis : x轴

// x轴线
xAxis: {
  type: 'category',
  boundaryGap: false,
  data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
}, 
//type: ‘category’ 的意思是类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
//boundaryGap: false 的意思是分隔线与缝隙。默认为true,这时,刻度只是作为分隔线,标签和数据点都会在两个 刻度 之间的带(band)中间。

yAxis : y轴

// y轴线 不需要修改,会自动根据x轴的数据进行修改。
yAxis:{
  type:"value"//可以不写
},  

series : 系列列表(重点)

series: [{
  barWidth:26,// 柱形宽度(折线图无)
  name: '',// legend对应的名称
  type: 'bar',// 图形类型
  stack: 'TUE',// 若多个值一样,则堆叠到一起
  data: [1,1,1,11],// 数值
  smooth: true, // 线条平滑展示,折线图起作用
  areaStyle: {},// 面积填充,折线图有效
  emphasis: {// 高亮
    label: {
      show: true,
      textStyle: {
        color: '#333333',
        fontWeight: 'bold'
      }
    }
  }
}] 

有多少个对象就有多少条线!!!
Type:图标类型 :bar 柱状图 、line折线图 、pie 饼形图

  • line折线图
(1)曲线图
加上smooth:true;就会变成曲线图
(2)面积图
加上areaStyle:{fill:“#f70”} 会变成面积图
  • pie饼形图
 (1)加上radius:[80,50] 会变成环形图

name: 系列名称,用于tooltip的显示,legend的图例筛选变化
stack:数据堆叠。 如果设置相同值,则会数据堆叠。
data:用于绘制图标的数据 必须是一个数组数据
比如:data:[12,30,45,66]
可以是一个多字段对象,只能用name和value
比如:

data:[
         {name:"js",value:90},
         {name:"html",value:85},
         {name:"jq",value:90},
         {name:"vue",value:50},
         ]
  • radius、center、roseType的设置与使用 饼状图

radius : [“10%”,“70%”] 如果是百分比一定要加双引号。
radius : [50,100] 如果是像素值,可以不用加双引号。
radius : [“10%”,“70%”] 表示内圆半径为10%;外圆半径为70%。
center: [“50%”,“50%”] 表示图形的位置水平垂直居中。
roseType: “radius” (半径模式) 或者 roseType: “area”(面积模式)
stack:"任意字符串" 表示多组不同数据时 相同数据会重叠

2.Echarts在vue中的应用
安装echarts
npm install echarts
引入echarts
import * as echarts from 'echarts';
Echarts的容器:

<!--  为 ECharts 准备一个具备高宽的 DOM 容器-->
    <div id="char1" style="width: 50%;height:300px;display: flex;border: 1px solid #ccc">
</div>

基本格式:

// 实例化echarts
// 创建一个echarts实例  echarts会把生成的图标加载到该容器中
let char5 = echarts.init(document.getElementById("容器id"))
// 定义配置项
let option = {
  // 图表的标题
  title:{
    text:"图标的标题"
  },
  // 图表的提示
  tooltip:{},
  // 图例
  legend:{data:["睡眠时长"]},
  // x轴线  横轴的图表数据
  xAxis:{data:["周一","周二","周三","周四","周五","周六","周日"]},
  // y轴线
  yAxis:{},
  // 构成画面的元素
  series: [{
    barWidth:26,// 柱形宽度(折线图无)
    name: '',// legend对应的名称
    type: 'bar',// 图形类型
    stack: 'TUE',// 若多个值一样,则堆叠到一起
    data: [1,1,1,11],// 数值
    smooth: true, // 线条平滑展示,折线图起作用
    areaStyle: {},// 面积填充,折线图有效
    emphasis: {// 高亮
      label: {
        show: true,
        textStyle: {
          color: '#333333',
          fontWeight: 'bold'
        }
      }
    }
  }]
}
// 更新配置
char5.setOption(option);

3.案例

<script setup>
  import * as echarts from "echarts";
  import {onMounted, reactive} from "vue";
  const info = reactive({
    char1List:[
      {
        name: '张三',
        type: 'bar',
        stack: 'Total',
        data: [150, 230, 224, 2182, 135, 2147, 260,100],
      },
      {
        name: '李四',
        stack: 'Total',
        data: [1250, 2230, 224, 212, 135, 2147, 260,100],
        type: 'bar'
      }
    ],
    char2List:[
      { value: 1048, name: 'Search Engine' },
      { value: 735, name: 'Direct' },
      { value: 580, name: 'Email' },
      { value: 484, name: 'Union Ads' },
      { value: 300, name: 'Video Ads' }
    ]
  })
onMounted(()=>{
  let char1 = echarts.init(document.getElementById('char1'));
  char1.setOption({
    title: {
      text: '测试多线条'
    },
    tooltip: {
      trigger: 'axis'
    },
    xAxis: {
      type: 'category',
      data: ['周一', '周二', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','6666']
    },
    yAxis: {
      type: 'value'
    },
    series: info.char1List
  });

  //饼图
  let char2 = echarts.init(document.getElementById('char2'));
  char2.setOption({
    title: {
      text: '测试饼图'
    },
    tooltip: {
      trigger: 'item'
    },
    legend: {
      orient: 'vertical',
      left: 'left'
    },
    series: [
      {
        name: 'Access From',
        type: 'pie',
        radius: '50%',
        data: info.char2List,
        emphasis: {
          itemStyle: {
            shadowBlur: 10,
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0.5)'
          }
        }
      }
    ]
  });
  //char3
  myChar3();
  myChar4();
})
const myChar3 =()=>{
  // 实例化echarts
  // 创建一个实例
  let char3 = echarts.init(document.getElementById("char3"))
  // 定义配置项
  let option = {
    // 图表的标题
    title:{
      text:"我的第一个图表"
    },
    // 图表的提示
    tooltip:{},
    // 图例
    legend:{data:["睡眠时长"]},
    // x轴线
    xAxis:{data:["周一","周二","周三","周四","周五","周六","周日"]},
    // y轴线
    yAxis:{},
    // 设置数据
    series:[
      {
        // 数据名称
        name:"睡眠时长",
        // 类型为柱状图
        type:"bar",
        // 数据data
        data:[8,10,4,5,9,4,8]
      }
    ]
  }
  char3.setOption(option);
}
const myChar4 =()=>{
  //实例化echarts
  // 创建一个实例
  let char4 = echarts.init(document.getElementById("char4"))
  // 定义配置项
  let option = {
    // 图表的标题
    title:{
      text:"生活作息表"
    },
    // 图表的提示
    tooltip:{},
    // 图例
    legend:{
      data:['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
    },
    // x轴线
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    },
    // y轴线
    yAxis:{
      type:"value"
    },
 // 构成画面的元素
      series:[
        {
          // 数据名称
          name:"睡眠时长",
          // 类型为柱状图
          type:"bar",
          // 数据data
          data:[8,10,4,5,9,4,8]
        },
        {
          // 数据名称
          name:"玩游戏时长",
          // 类型为柱状图
          type:"line",
          // 数据data
          data:[2,4,1,5,6,8,5]
        },
        {
          // 数据名称
          name:"上课时长",
          // 类型为柱状图
          type:"line",
          smooth:true,
          // 数据data
          data:[6,7,5,8,6,1,0],
          areaStyle:"#f70"
        },
        {
          name:"成绩",
          // 饼形图
          type:"pie",
          // radius:80,
          // 半径
          radius:[80,50],
          // 位移
          left:-80,
          top:-270,
          // 数据
          data:[
            {name:"js",value:90},
            {name:"html",value:85},
            {name:"jq",value:90},
            {name:"vue",value:50},
          ]
        }
      ]
    }
    char4.setOption(option);
  }
</script>
<template>
  <div style="width: calc(100vw - 221);display: flex">
    <div id="char1" style="width: 50%;height:300px;display: flex;border: 1px solid #ccc">

    </div>
    <div id="char2" style="width: 50%;height:300px;border: 1px solid #ccc">

    </div>
  </div>
  <div style="width: calc(100vw - 221);display: flex">
    <div id="char3" style="width: 50%;height:300px;display: flex;border: 1px solid #ccc">

    </div>
    <div id="char4" style="width: 50%;height:300px;border: 1px solid #ccc">

    </div>
  </div>
</template>

<style scoped>

</style>

标签:name,数据,data,value,Echarts,type,echarts
From: https://www.cnblogs.com/llhcmbs/p/18364944

相关文章

  • Python数据分析项目实战01_票房榜单分析和pyecharts大屏可视化
    一:最终大屏效果展示由于生成了html网页只能在本地上显示,这个大屏是动态的,只能显示其中的图片。如果要分享给他人使用,就需要将html源码转为网页。生成的html源码入口:‬​‍​‌‌​⁠​​​‌‍​​​​​‬​​​​​‬​​​​‌​​​‌‍​​​​​⁠‌‬‌​​‌Python数......
  • 用layui +echarts 曲线图实现子页面向父页面传值,点击曲线图表上的点后删除该点,并在删
    下面是一个完整的示例,展示了如何使用layui和ECharts实现以下功能:子页面向父页面传值。点击曲线图上的点后删除该点。删除后自动刷新layui表格列表。根据子页面传值和起止时间刷新父页面。文件结构假设你有两个文件:父页面(index.html)子页面(child.html)1.子页面......
  • Echarts 绘制地图(中国、省市、区县)
    目录前言一、ApacheEcharts二、获取地图的GeoJSON三、项目中引用四、准备放地图的容器五、配置地图option信息六、初始化地图往期回顾前言最近在搞大数据可视化的项目,需要用Echart来做可视化的图表,比如像地图,图表类,今天主要介绍下echart绘制地图如何使用,话不多说......
  • 用echarts绘制图表时,横坐标数据太多显示不全/堆叠的解决方法
    一、横坐标数据过多可能出现的问题1、横坐标文字堆叠2、横坐标显示不全(数据2,数据4,数据6,数据8,数据10,数据12,数据14均没有显示出来)二、解决方法1、使用rotate属性给echarts的横坐标标签设置旋转角度xAxis:{type:'category',data:xAxis,......
  • react中封装Echarts
    下载npxcreate-react-appmy-echarts创建公共组件importReact,{useState,useEffect,useMemo}from'react';import*asechartsfrom"echarts";constEChartsComponent=({option})=>{const[echartsInstance,setEchartsInstance]=u......
  • 【日常开发】 java返回ECharts数据结构封装
    java返回ECharts数据结构封装一、前端页面示例图如下:二、准备测试数据:三、后端格式封装代码:四、最终结果:......
  • echarts图标如何自适应宽度
    echarts图标直接设置宽度100%会默认魏100px,需要自适应方法如下图标html<el-col:span="8"><divid="userNianling_three"style="width:100%;height:500px;"/>......
  • echarts 关系图(graph)里的links的起点和终点设置无效
    问题描述,data里面数据也设置了id({id:1})这样设置的,links里面设置了source和target({source:0,target:1}),但是运行发现只显示了node没显示连线(edge),去看了文档描述 1、source  stringnumber 边的源节点名称的字符串,也支持使用数字表示源节点的索引。2、target stringn......
  • Echarts 实现圆角环形图
     第一种方式:使用bar实现想要的效果:代码实现:constchartData={title:{text:'97',//圆环中间数字textStyle:{color:'#222222',fontSize:20,},subtext:'成功数',subtextS......
  • echarts自定义x轴和tooltip数据格式
    echarts自定义x轴和tooltip数据格式x轴和y轴数据格式如下x:[0,1,2,3,4,5,6,.....,23],y:[2.5,3.1,3.2,2.2,2.3,3.1,3.1,null,null,null,....,null]//接口返回0-23点的数据,每一个小时一个间隔,没有的话则为null 修改后xy轴数据格式如下//每五分钟一......