【echarts】用js与echarts数据图表化,折线图、折线图堆叠、柱状图、折柱混合、环形图

news2024/11/16 20:05:19

echarts

是一个基于 JavaScript 的开源可视化库,用于构建交互式和自定义的图表,使数据更加直观和易于理解,由百度开发并于2018年捐赠给 Apache 软件基金会,后来改名为Apache ECharts

类似的还有Chart.js

Chart.js地址:Chart.js 中文网

基础折线图

效果图:

 源码:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="utf-8">
  <title>Basic Line Chart - Apache ECharts Demo</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    #chart-container {
      position: relative;
      height: 100vh;
      overflow: hidden;
    }
  </style>
</head>

<body>
  <div id="chart-container"></div>
  <script src="https://fastly.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
  <script>
    var dom = document.getElementById('chart-container');
    // init 方法来初始化一个图表实例 myChart
    // 第一个参数 dom 是指定图表容器的 DOM 元素
    // 第二个参数 null 是可选的,表示指定的主题名称。这里传入 null 表示不使用任何主题,将使用默认主题
    // 第三个参数是一个配置对象,用于提供额外的配置选项
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};

    var option;

    option = {
      // x 轴 类型与数据
      xAxis: {
        type: 'category',
        data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
        name: '星期'
      },
      // y 轴 类型与数据
      yAxis: {
        type: 'value',
        name: '开销,单位元'
      },
      series: [
        {
          // 存放着对应 x 轴类目的数值数据,依次是周一到周日的数值
          data: [50, 60, 44, 50, 43, 75, 120],
          // 表示该系列使用折线图进行展示
          type: 'line',
          // smooth: true 表示启用平滑曲线
          // smooth:true
        }
      ]
    };

    if (option && typeof option === 'object') {
      // 将配置应用到图表实例
      myChart.setOption(option);
    }
    // 监听窗口的 resize 事件,实现了图表在窗口大小变化时的自适应调整
    window.addEventListener('resize', myChart.resize);
  </script>
</body>

</html>

折线图堆叠

效果图:

源码:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="utf-8">
  <title>Basic Line Chart - Apache ECharts Demo</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    #chart-container {
      position: relative;
      height: 100vh;
      overflow: hidden;
    }
  </style>
</head>

<body>
  <div id="chart-container"></div>
  <script src="https://fastly.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
  <script>
    var dom = document.getElementById('chart-container');
    // init 方法来初始化一个图表实例 myChart
    // 第一个参数 dom 是指定图表容器的 DOM 元素
    // 第二个参数 null 是可选的,表示指定的主题名称。这里传入 null 表示不使用任何主题,将使用默认主题
    // 第三个参数是一个配置对象,用于提供额外的配置选项
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};

    var option;

    option = {
      // 设置标题 
      title: {
        text: '小周的遐想工资'
      },
      // 表示鼠标悬停在数据点上时显示提示框
      tooltip: {
        trigger: 'axis'
      },
      grid: {
        // 设置了图表的内边距
        left: '5%',
        right: '5%',
        bottom: '5%',
        // 坐标轴标签显示在内部,以免被裁剪
        containLabel: true
      },
      // toolbox 属性定义了图表的工具箱
      toolbox: {
        feature: {
          // saveAsImage,它表示将图表保存为图片的功能
          saveAsImage: {}
        }
      },
      xAxis: {
        type: 'category',
        // 表示数据从两个刻度之间开始绘制,而不是从刻度上开始
        boundaryGap: false,
        data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
        name: '星期'
      },
      yAxis: {
        type: 'value',
        name: '日薪'
      },
      series: [
        {
          name: '一年',
          type: 'line',
          data: [300, 300, 300, 300, 300, 600, 600]
        },
        {
          name: '两年',
          type: 'line',
          data: [380, 380, 380, 380, 380, 700, 700]
        },
        {
          name: '三年',
          type: 'line',
          data: [480, 480, 480, 480, 480, 800, 800]
        },
        {
          name: '四年',
          type: 'line',
          data: [550, 550, 550, 550, 550, 900, 900]
        },
        {
          name: '五年',
          type: 'line',
          data: [680, 680, 680, 680, 680, 1000, 1000]
        }
      ]
    };

    if (option && typeof option === 'object') {
      // 将配置应用到图表实例
      myChart.setOption(option);
    }
    // 监听窗口的 resize 事件,实现了图表在窗口大小变化时的自适应调整
    window.addEventListener('resize', myChart.resize);
  </script>
</body>

</html>

基础柱状图

效果图:

代码:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="utf-8">
  <title>Basic Line Chart - Apache ECharts Demo</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    #chart-container {
      position: relative;
      height: 100vh;
      overflow: hidden;
    }
  </style>
</head>

<body>
  <div id="chart-container"></div>
  <script src="https://fastly.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
  <script>
    var dom = document.getElementById('chart-container');
    // init 方法来初始化一个图表实例 myChart
    // 第一个参数 dom 是指定图表容器的 DOM 元素
    // 第二个参数 null 是可选的,表示指定的主题名称。这里传入 null 表示不使用任何主题,将使用默认主题
    // 第三个参数是一个配置对象,用于提供额外的配置选项
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};

    var option;

    option = {
      xAxis: {
        type: 'category',
        data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
        name: "星期"
      },
      yAxis: {
        type: 'value',
        name: "开销"
      },
      series: [
        {
          //  数组中存放了对应 x 轴类目的数值数据
          data: [
            80,
            {
              value: 100,
              // itemStyle 属性指定了该数据点的颜色为 '#a90000'
              itemStyle: {
                color: '#a90000'
              }
            },
            90,
            55,
            70,
            140,
            130
          ],
          // 表示该系列使用柱状图进行展示
          type: 'bar',
          // 表示显示柱状图的背景。默认情况下,背景是透明的
          showBackground: true,
          // 定义了柱状图的背景样式
          backgroundStyle: {
            color: 'rgba(180, 180, 180, 0.2)'
          }
        }
      ]
    };

    if (option && typeof option === 'object') {
      // 将配置应用到图表实例
      myChart.setOption(option);
    }
    // 监听窗口的 resize 事件,实现了图表在窗口大小变化时的自适应调整
    window.addEventListener('resize', myChart.resize);
  </script>
</body>

</html>

折柱混合

效果图:

 源代码:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="utf-8">
  <title>Basic Line Chart - Apache ECharts Demo</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    #chart-container {
      position: relative;
      height: 100vh;
      overflow: hidden;
    }
  </style>
</head>

<body>
  <div id="chart-container"></div>
  <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
  <script>
    var dom = document.getElementById('chart-container');
    // init 方法来初始化一个图表实例 myChart
    // 第一个参数 dom 是指定图表容器的 DOM 元素
    // 第二个参数 null 是可选的,表示指定的主题名称。这里传入 null 表示不使用任何主题,将使用默认主题
    // 第三个参数是一个配置对象,用于提供额外的配置选项
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};

    var option;

    option = {
      // 定义了鼠标悬停在图表上时显示的提示框
      tooltip: {
        trigger: 'axis',
        axisPointer: {
          type: 'cross',
          crossStyle: {
            color: '#999'
          }
        }
      },
      // toolbox 属性定义了工具栏
      toolbox: {
        feature: {
          //  表示可以查看数据视图
          dataView: { show: true, readOnly: false },
          // magicType 表示可以切换不同的图表类型,包括线图和柱状图
          magicType: { show: true, type: ['line', 'bar'] },
          // 表示可以还原图表的初始状态
          restore: { show: true },
          // 表示可以保存图表为图片
          saveAsImage: { show: true }
        }
      },
      xAxis: [
        {
          type: 'category',
          data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
          axisPointer: {
            type: 'shadow'
          },
          name: "星期"
        }
      ],
      yAxis: [
        {
          type: 'value',
          name: '降水量',
          min: 0,
          max: 500,
          // 表示刻度间隔
          interval: 50,
          // 定义了坐标轴刻度上的文本显示格式
          axisLabel: {
            formatter: '{value} ml'
          }
        },
        {
          type: 'value',
          name: '温度',
          min: 0,
          max: 50,
          // 表示刻度间隔
          interval: 5,
          // 定义了坐标轴刻度上的文本显示格式
          axisLabel: {
            formatter: '{value} °C'
          }
        }
      ],
      series: [
        {
          name: '蒸发量',
          type: 'bar',
          tooltip: {
            // 定义了数值的格式化函数,分别将数值加上单位
            valueFormatter: function (value) {
              return value + ' ml';
            }
          },
          data: [
            2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3
          ]
        },
        {
          name: '降水量',
          type: 'bar',
          tooltip: {
            valueFormatter: function (value) {
              return value + ' ml';
            }
          },
          data: [
            2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
          ]
        },
        {
          name: '温度',
          type: 'line',
          // 将某个系列数据与第二个 Y 轴关联起来,使该系列在第二个 Y 轴上显示
          yAxisIndex: 1,
          tooltip: {
            valueFormatter: function (value) {
              return value + ' °C';
            }
          },
          data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
        }
      ]
    };

    if (option && typeof option === 'object') {
      // 将配置应用到图表实例
      myChart.setOption(option);
    }
    // 监听窗口的 resize 事件,实现了图表在窗口大小变化时的自适应调整
    window.addEventListener('resize', myChart.resize);
  </script>
</body>

</html>

环形图

效果图:

 源代码:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="utf-8">
  <title>Basic Line Chart - Apache ECharts Demo</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    #chart-container {
      position: relative;
      height: 100vh;
      overflow: hidden;
    }
  </style>
</head>

<body>
  <div id="chart-container"></div>
  <script src="./echarts.min.js"></script>
  <script>
    var dom = document.getElementById('chart-container');
    // init 方法来初始化一个图表实例 myChart
    // 第一个参数 dom 是指定图表容器的 DOM 元素
    // 第二个参数 null 是可选的,表示指定的主题名称。这里传入 null 表示不使用任何主题,将使用默认主题
    // 第三个参数是一个配置对象,用于提供额外的配置选项
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};

    var option;

    option = {
      // 鼠标悬停在饼图扇区上时显示的提示框
      tooltip: {
        trigger: 'item'
      },
      legend: {
        top: '5%',
        left: 'center'
      },
      series: [
        {
          name: '饼图',
          type: 'pie',
          // 设置内外半径,即饼图的大小。内半径为 40%,外半径为 70%
          radius: ['40%', '70%'],
          // 不允许标签重叠
          avoidLabelOverlap: false,
          label: {
            position: 'outside',  // 设置标签位置为饼图对应的侧边
            fontSize: 12,  // 可选:调整标签字体大小
            fontWeight: 'bold'  // 可选:调整标签字体粗细
          },
          emphasis: {
            // 提示文本的样式配置
            label: {
              show: true,
              fontSize: 14,
              fontWeight: 'bold'
            }
          },
          labelLine: {
            show: false
          },
          data: [
            { value: 500, name: '周一的工作量' },
            { value: 60, name: '周二的工作量' },
            { value: 10, name: '周三的工作量' },
            { value: 410, name: '周四的工作量' },
            { value: 200, name: '周五的工作量' }
          ]
        }
      ]
    };

    if (option && typeof option === 'object') {
      // 将配置应用到图表实例
      myChart.setOption(option);
    }
    // 监听窗口的 resize 事件,实现了图表在窗口大小变化时的自适应调整
    window.addEventListener('resize', myChart.resize);
  </script>
</body>

</html>

echarts文档:Examples - Apache ECharts

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从此告别涂硅脂 利民推出新款CPU固态导热硅脂片:一片26.9元

利民(Thermalright)近日推出了新款Heilos CPU固态导热硅脂片&#xff0c;其中Intel版为26.9元&#xff0c;AMD版售价29.9元。 以往向CPU上涂硅脂&#xff0c;需要先挤一粒绿豆大小的硅脂&#xff0c;然后用塑料片涂匀&#xff0c;操作和清理对新手都极不友好。 该固态导热硅脂片…

string【2】模拟实现string类

string模拟实现 引言&#xff08;实现概述&#xff09;string类方法实现默认成员函数构造函数拷贝构造赋值运算符重载析构函数 迭代器beginend 容量size、capacity、emptyreserveresize 访问元素operator[] 修改insert插入字符插入字符串 appendpush_backoperatoreraseclearswa…

Python web实战 | 使用 Flask 实现 Web Socket 聊天室

概要 今天我们学习如何使用 Python 实现 Web Socket&#xff0c;并实现一个实时聊天室的功能。本文的技术栈包括 Python、Flask、Socket.IO 和 HTML/CSS/JavaScript。 什么是 Web Socket&#xff1f; Web Socket 是一种在单个 TCP 连接上进行全双工通信的协议。它是 HTML5 中的…

SAMBA 文件分享相关 笔记

目标说明 在Linux 安装Samba&#xff0c;然后在Windows端映射为网络硬盘 流程 Linux 端命令 apt install samba -y 默认情况下软件会询问是否迁移系统网络设置以搭建协议&#xff0c;选择迁移即可修改配置文件 vim /etc/samba/smb.conf Samba 的配置文件中会带一个名为 prin…

【Mybatis】Mybatis架构简介

文章目录 1.整体架构图2. 基础支撑层2.1 类型转换模块2.2 日志模块2.3 反射工具模块2.4 Binding 模块2.5 数据源模块2.6缓存模块2.7 解析器模块2.8 事务管理模块 3. 核心处理层3.1 配置解析3.2 SQL 解析与 scripting 模块3.3 SQL 执行3.4 插件 4. 接口层 1.整体架构图 MyBatis…

第5集丨webpack 江湖 —— 项目发布 和 source map

目录 一、webpack项目发布1.1 新增发布(build)命令1.2 优化js和图片文件的存放路径1.3 执行1.4 效果 二、clean-webpack-plugin插件2.1 安装2.2 配置2.3 执行 三、source map3.1 配置3.2 生成的source map文件 四、定义符4.1 配置4.2 使用 五、工程附件汇总5.1 webpack.config.…

大麦订单一键生成 仿大麦订单生成

后台一键生成链接&#xff0c;独立后台管理 教程&#xff1a;修改数据库config/Conn 不会可以看源码里有教程 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

强化学习(EfficientZero)(应用于图像和声音)

目录 摘要 1.背景介绍 2.MCTS&#xff08;蒙特卡洛树搜索&#xff09;&#xff08;推理类模型&#xff0c;棋类效果应用好&#xff0c;控制好像也不错&#xff09; 3.MUZERO 4.EfficientZero&#xff08;基于MUZERO&#xff09; 展望 参考文献 摘要 在文中&#xff0c;基于…

【雕爷学编程】MicroPython动手做(20)——掌控板之三轴加速度5

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

数学建模 好文章和资源推荐

数学建模入门篇(0基础必看&#xff0c;全是自己的经验) 【竞赛|数学建模】Part 1&#xff1a;什么是数学建模和各模块介绍 0基础小白&#xff0c;如何入门数学建模&#xff1f; 数学建模入门篇(0基础必看&#xff0c;全是自己的经验) 什么是数学建模 重申了一下题目&#xff…

基于SpringBoot+Vue的地方废物回收机构管理系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

并发编程——线程池

1.概述 如果并发的线程过多&#xff0c;而且执行的时间都非常短&#xff0c;如果这样&#xff0c;每次都要创建线程就会大大降低效率&#xff0c;我们可以通过线程池来解决&#xff0c;JDK5增加了内置线程池ThreadPollExecutor。 2.线程池的优点 1.重复利用&#xff0c;降低…

【LeetCode】单链表——刷题

你曾经灼热的眼眶&#xff0c;是人生中少数的笨拙又可贵的时刻。 文章目录 1.反转单链表 题目思路及图解 代码中需要注意的问题 2.移除链表元素 题目思路及图解 代码中需要注意的问题 大家好&#xff0c;我是纪宁。 这篇文章分享给大家一些经典的单链表leetcode笔试题的…

【Unity 实用插件篇】 | 行为状态机StateMachine,规范化的管理对象行为

前言【Unity 实用插件篇】 | 行为状态机StateMachine 学习使用一、StateMachine行为状态机 介绍二、StateMachine 结构分析三、StateMachine状态机详细使用流程3.1 第一步:创建状态机Transition Table SO3.2 第二步:创建对应状态的 State SO3.3 第三步:创建状态的切换条件 C…

Hadoop学习指南:探索大数据时代的重要组成——运行环境搭建

Hadoop运行环境搭建&#xff08;开发重点&#xff09; 模板虚拟机环境准备 数据来源层 安装模板虚拟机&#xff0c;IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G hadoop100 虚拟机配置要求如下&#xff08;本文Linux系统全部以CentOS-7.5-x86-1804为例&#…

小研究 - Java 虚拟机实现原理分析

针对虚拟机的底层实现原理及相关实现过程&#xff0c;讨论了 Java 语言的跨平台原理以及相关工作机制&#xff0c;分析了 JVM 底层各数据区内存管理过程&#xff0c;阐述了 JVM 在 Java 语言中的核心作用以及重要地位。 目录 1 概述 2 Java 平台分层原理 3 虚拟机工作原理 …

CDC一键入湖:当 Apache Hudi DeltaStreamer 遇见 Serverless Spark

文章目录 1. 整体架构2. 环境准备3. 配置全局变量4. 创建专属工作目录和存储桶5. 创建 EMR Serverless Execution Role6. 创建 EMR Serverless Application7. 提交 Apache Hudi DeltaStreamer CDC 作业7.1 准备作业描述文件7.2 提交作业7.3 监控作业7.4 错误检索7.5 停止作业 8…

仿转转闲鱼链接后台生成

教程&#xff1a;修改数据库账号密码直接使用。 源码带有教程! 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

TIA博途中通过UDT实现IO地址映射到DB块中的具体方法

TIA博途中通过UDT实现IO地址映射到DB块中的具体方法 如下图所示,打开TIA博途,新建一个项目,添加一个PLC UDT数据类型Iomap,数据类型为Array[0…49] of Byte, 如下图所示,再添加一个全局DB块,在DB块中添加一个变量map,数据类型为Iomap, 如下图所示,在PLC变量表中添加一…

iOS开发-NotificationServiceExtension实现实时音视频呼叫通知响铃与震动

iOS开发-NotificationServiceExtension实现实时音视频呼叫通知响铃与震动 在之前的开发中&#xff0c;遇到了实时音视频呼叫通知&#xff0c;当App未打开或者App在后台时候&#xff0c;需要通知到用户&#xff0c;用户点击通知栏后是否接入实时音视频的视频或者音频通话。 在…