栏目一:使用echarts绘制简单图形

news2024/11/18 9:20:20

栏目一:使用echarts绘制简单图形

  • 前言
  • 1. 在线编辑图形
    • 1.1 折线图
    • 1.2 柱状图
    • 1.3 扇形图
  • 2. 本地绘制图表
    • 2.1 下载echarts.min.js
    • 2.2 创建一个简单的图形

前言

Echarts是一款基于JavaScript的可视化图表库。它提供了丰富的图表类型和交互功能,可以用于在网页中展示各种数据。Echarts支持多种数据格式的转换和操作,可以轻松地将数据转换为图表所需的格式,并且可以对图表进行个性化的配置和设置。Echarts还支持响应式布局,可以根据不同的设备和屏幕大小自动调整图表的显示效果。Echarts的文档齐全,使用简便,并且具有强大的扩展性,可以满足各种复杂的数据可视化需求。
官网链接:https://echarts.apache.org/zh/index.html
快速入门:https://echarts.apache.org/handbook/zh/get-started/
本章节将从在线编辑图表和本地绘制图表两个方面进行介绍

1. 在线编辑图形

1.1 折线图

以下是官网的一个简单示例
在这里插入图片描述
代码介绍

// 注释说明:
// 1. 这个配置对象定义了一个简单的折线图,其中X轴是周几(‘Mon’到’Sun’),Y轴是对应的数值。
// 2. xAxis 定义了X轴的基本属性,包括轴的类型(类目轴)和轴上的数据(周一至周日)。
// 3. yAxis 定义了Y轴的基本属性,即轴的类型(数值轴)。
// 4. series 是图表的核心,定义了图表的数据和类型。这里只定义了一个系列,类型为折线图,数据为一周内每天的某个数值。

// ECharts 配置对象  
option = {  
  // X 轴配置  
  xAxis: {  
    // X轴类型,'category' 表明是类目轴,适用于离散的类目数据  
    type: 'category',  
    // X轴上的数据,数组项表示类目名  
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']  
  },  
  // Y 轴配置  
  yAxis: {  
    // Y轴类型,'value' 表明是数值轴,适用于连续数据  
    type: 'value'  
  },  
  // 系列列表,每个系列通过 type 决定渲染成哪种图表  
  series: [  
    {  
      // 数据数组,数组项通常为具体的数据值  
      data: [150, 230, 224, 218, 135, 147, 260],  
      // 图表类型,'line' 表示折线图  
      type: 'line'  
    }  
  ]  
};  

1.2 柱状图

简单柱状图展示
在这里插入图片描述
代码介绍

// 注释说明:
// 1. 这个配置对象定义了一个简单的柱状图,其中X轴是周几(‘Mon’到’Sun’),Y轴是对应的数值。
// 2. xAxis 定义了X轴的基本属性,包括轴的类型(类目轴)和轴上的数据(周一至周日)。
// 3. yAxis 定义了Y轴的基本属性,即轴的类型(数值轴)。
// 4. series 是图表的核心,定义了图表的数据和类型。这里定义了一个系列,类型为柱状图。
// 5. 在 series 的 data 数组中,周二的数据被设置为一个对象,其中不仅包含了值(value: 200),还包含了数据点的样式(itemStyle),特别地将颜色设置为红色(#a90000)。
// 6. 其余数据点直接使用数值表示,没有额外设置样式,将使用默认的样式渲染。

// ECharts 配置对象  
option = {  
  // X 轴配置  
  xAxis: {  
    // X轴类型,'category' 表明是类目轴,适用于离散的类目数据  
    type: 'category',  
    // X轴上的数据,数组项表示类目名  
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']  
  },  
  // Y 轴配置  
  yAxis: {  
    // Y轴类型,'value' 表明是数值轴,适用于连续数据  
    type: 'value'  
  },  
  // 系列列表,每个系列通过 type 决定渲染成哪种图表  
  series: [  
    {  
      // 数据数组,数组项通常为具体的数据值,但也可以是包含值和样式的对象  
      data: [  
        120,                 // 周一的数据  
        {  
          value: 200,        // 周二的数据值  
          itemStyle: {       // 数据点的样式配置  
            color: '#a90000' // 将周二的数据点颜色设置为红色  
          }  
        },  
        150,                 // 周三的数据  
        80,                  // 周四的数据  
        70,                  // 周五的数据  
        110,                 // 周六的数据  
        130                  // 周日的数据  
      ],  
      // 图表类型,'bar' 表示柱状图  
      type: 'bar'  
    }  
  ]  
};  

1.3 扇形图

扇形图示例
在这里插入图片描述
代码介绍

// 注释说明:
// 1. 这个配置对象定义了一个饼图,展示了不同来源的访问量。
// 2. tooltip 组件用于在鼠标悬停时显示更详细的数据信息。
// 3. legend 组件用于显示图例,方便用户通过点击图例来筛选显示的数据系列。
// 4. series 定义了饼图的具体配置,包括名称、类型、半径范围、扇区样式、标签设置、高亮状态样式以及数据内容。
// 5. 在 series 的 data 数组中,每个对象代表一个扇区,包含数值(value)和名称(name)。
// 6. 注意:由于 label 的 show 属性被设置为 false,所以默认的标签不会显示,只有在扇区被高亮(如鼠标悬停)时,通过 emphasis 设置的标签才会显示。

// ECharts 配置对象  
option = {  
  // 提示框组件,用于展示更详细的数据信息  
  tooltip: {  
    // 触发类型,'item' 表示数据项图形触发,主要在类目轴(category axis)上使用  
    trigger: 'item'  
  },  
  // 图例组件,用于展示系列的标记(symbol)、颜色和名字  
  legend: {  
    // 图例组件距离容器上边界的距离,单位可以是像素(px)或百分比(%)  
    top: '5%',  
    // 图例组件距离容器左边界的距离,这里设置为居中  
    left: 'center'  
  },  
  // 系列列表,每个系列通过 type 决定渲染成哪种图表  
  series: [  
    {  
      // 系列名称,用于 tooltip 的显示,legend 的图例筛选  
      name: 'Access From',  
      // 图表类型,'pie' 表示饼图  
      type: 'pie',  
      // 饼图的半径范围,数组的第一项是内半径,第二项是外半径  
      radius: ['40%', '70%'],  
      // 是否启用标签的防重叠策略,这里设置为 false 表示不启用  
      avoidLabelOverlap: false,  
      // 扇形的圆角角度,用于绘制圆角的扇形  
      padAngle: 5,  
      // 扇形的样式设置  
      itemStyle: {  
        // 扇形的边框圆角  
        borderRadius: 10  
      },  
      // 标签的显示设置  
      label: {  
        // 是否显示标签  
        show: false,  
        // 标签的位置  
        position: 'center' // 注意:由于 show 设置为 false,这里的位置设置实际上不会生效  
      },  
      // 高亮状态的样式设置  
      emphasis: {  
        // 高亮时标签的显示设置  
        label: {  
          // 是否显示标签  
          show: true,  
          // 标签的字体大小  
          fontSize: 40,  
          // 标签的字体粗细  
          fontWeight: 'bold'  
        }  
      },  
      // 是否显示扇区到标签的连线  
      labelLine: {  
        show: false  
      },  
      // 数据内容数组,表示每个扇区的数值和名称  
      data: [  
        { value: 1048, name: 'Search Engine' }, // 搜索引擎来源  
        { value: 735, name: 'Direct' },         // 直接访问  
        { value: 580, name: 'Email' },          // 邮件营销  
        { value: 484, name: 'Union Ads' },      // 联盟广告  
        { value: 300, name: 'Video Ads' }       // 视频广告  
      ]  
    }  
  ]  
};  

2. 本地绘制图表

2.1 下载echarts.min.js

下载链接:https://gitee.com/hope_xi/common-js-files/blob/master/echarts.min.js#
选择echarts.min.js下载
在这里插入图片描述
如果觉得下载麻烦,也可以直接复制echarts.min.js代码,在本地创建echarts.min.js文件后把代码拷贝进取,保存。
在这里插入图片描述

2.2 创建一个简单的图形

常见一个demo.html文件,放入下方代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
  <div id="main" style="width: 600px;height:400px;"></div>
</body>
<!-- 引入刚刚下载的 ECharts 文件 -->
<script src="../js/echarts.min.js"></script>
<script>
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    var option;

    option = {
    tooltip: {
        trigger: 'item'
    },
    legend: {
        top: '5%',
        left: 'center'
    },
    series: [
        {
        name: 'Access From',
        type: 'pie',
        radius: ['40%', '70%'],
        avoidLabelOverlap: false,
        padAngle: 5,
        itemStyle: {
            borderRadius: 10
        },
        label: {
            show: false,
            position: 'center'
        },
        emphasis: {
            label: {
            show: true,
            fontSize: 40,
            fontWeight: 'bold'
            }
        },
        labelLine: {
            show: false
        },
        data: [
            { value: 1048, name: 'Search Engine' },
            { value: 735, name: 'Direct' },
            { value: 580, name: 'Email' },
            { value: 484, name: 'Union Ads' },
            { value: 300, name: 'Video Ads' }
        ]
        }
    ]
    };

    option && myChart.setOption(option);
</script>
</html>

打开页面,便可看到echart图表
在这里插入图片描述
接下来就可以根据自己的项目选择合适的图表进行展示了。
具体图形设置可以观看echart配置项手册
后续我也会分享一些自己平时用到的好看的图表。

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

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

相关文章

Golang | Leetcode Golang题解之第445题两数相加II

题目&#xff1a; 题解&#xff1a; func reverseList(head *ListNode) *ListNode {if head nil || head.Next nil {return head}newHead : reverseList(head.Next)head.Next.Next head // 把下一个节点指向自己head.Next nil // 断开指向下一个节点的连接&#xff0c;保证…

Study-Oracle-10-ORALCE19C-RAC集群搭建(一)

一、硬件信息及配套软件 1、硬件设置 RAC集群虚拟机:CPU:2C、内存:10G、操作系统:50G Openfile数据存储:200G (10G*2) 2、网络设置 主机名公有地址私有地址VIP共享存储(SAN)rac1192.168.49.13110.10.10.20192.168.49.141192.168.49.130rac2192.168.49.13210.10.10.3…

使用dockerfile来构建一个包含Jdk17的centos7镜像(构建镜像:centos7-jdk17)

文章目录 1、dockerfile简介2、入门案例2.1、创建目录 /opt/dockerfilejdk172.2、上传 jdk-17_linux-x64_bin.tar.gz 到 /opt/dockerfilejdk172.3、在/opt/dockerfilejdk17目录下创建dockerfile文件2.4、执行命令构建镜像 centos7-jdk17 : 不要忘了后面的那个 .2.5、查看镜像是…

Mixture-of-Experts (MoE): 条件计算的诞生与崛起【上篇】

大型语言模型&#xff08;LLM&#xff09;的现代进步主要是缩放定律的产物[6]。 假设模型是在足够大的数据集上训练出来的&#xff0c;那么随着底层模型规模的增加&#xff0c;我们会看到性能的平滑提升。 这种扩展规律最终促使我们创建了 GPT-3 以及随后的其他&#xff08;更强…

力扣高频 SQL 50 题(基础版)|分析、题解

注意一些语法 1、group by出现在having前面&#xff0c;但是having中所使用的聚合必须是select中的 2、date类型之间的比较&#xff1a;datediff&#xff08;&#xff09; 差的绝对值 or 用字符框起来比较边界 3、算日期长度需要相减之后加一 4、round(, n)n默认是0&#x…

【Java】内存分析 —— 栈内存、堆内存与垃圾对象的形成

图1 内存分析 从图1可以看出&#xff0c;在创建Person对象时&#xff0c;程序会占用两块内存区域&#xff0c;分别是栈内存和堆内存。其中Person类型的变量p被存放在栈内存中&#xff0c;它是一个引用&#xff0c;会指向真正的对象&#xff1b;通过new Person()创建的对象则放…

UDP校验和计算及网络中的校验和机制

UDP (User Datagram Protocol) 是一种无连接的传输层协议&#xff0c;它不像 TCP 那样提供可靠的传输保证。虽然 UDP 不保证数据可靠性&#xff0c;但它仍然提供了一个可选的校验和机制来检测数据在传输过程中出现的错误。 理解UDP校验和的计算过程和其在网络中的作用至关重要。…

学习C语言(21)

整理今天的学习内容 1.结构体实现位段 &#xff08;1&#xff09;位段的声明 位段的成员必须是 int、unsigned int 或signed int &#xff0c;在C99中位段成员的类型也可以选择其他类型 例&#xff1a; &#xff08;2&#xff09;位段的内存分配 位段的空间上是按照需要以…

【 Java 】工具类 —— Collections 与 Arrays 的实用操作全解析

Collections工具类 在Java中&#xff0c;针对集合的操作非常频繁&#xff0c;例如对集合中的元素排序、从集合中查找某个元素等。针对这些常见操作&#xff0c;Java提供了一个工具类专门用来操作集合&#xff0c;这个类就是Collections&#xff0c;它位于java.util包中。Colle…

揭开量子计算和加密未来的秘密

加密保护您的数据 您是否想知道如何保证您的在线数据安全&#xff1f;这就是加密的作用所在。加密是一种使用秘密代码更改数据的过程。这些更改只能由拥有正确密钥的接收者解码和读取。 加密是保护敏感和个人信息安全的重要工具。使用加密的一些示例包括信用卡详细信息、消息…

嵌入式linux系统中Sysfs设备驱动管理方法

大家好,今天主要给大家分享一下,如何使用linux系统里面的Sysfs进行设备管理,希望对大家有所收获。 第一:Sysfs设备驱动管理简介 sysfs 是非持久性虚拟文件系统,它提供系统的全局视图,并通过它们的 kobiect 显示内核对象的层次结构(拓扑)。每个 kobiect 显示为目录和目录…

一次 Spring 扫描 @Component 注解修饰的类坑

问题现象 之前遇到过一个问题&#xff0c;在一个微服务的目录下有相同功能 jar 包的两个不同的版本&#xff0c;其中一个版本里面的类有 Component 注解&#xff0c;另外一个版本的类里面没有 Component 注解&#xff0c;且按照加载的顺序&#xff0c;没有 Component 注解的 j…

maven安装教程(图文结合,最简洁易懂)

前提 所有的Maven都需要Java环境&#xff0c;所以首先需要安装JDK,本教程默认已安装JDK1.8 未安装JDK可看JDK安装教程&#xff1a;JDK1.8安装教程 主要分为两个大步骤&#xff1a;安装、配置 一、下载和安装Maven 1、将maven解压后的文件夹复制到D盘根目录 &#xff08;最好…

fmql之Linux内核定时器

内容依然来自于正点原子。 Linux内核时间管理 内容包括&#xff1a; 系统频率设置节拍率&#xff1a;高节拍率的优缺点全局变量jiffies绕回的概念&#xff08;溢出&#xff09;API函数&#xff08;处理绕回&#xff09; HZ为每秒的节拍数 Linux内核定时器 内容包括&#xf…

3-1.Android Fragment 之创建 Fragment

Fragment Fragment 可以视为 Activity 的一个片段&#xff0c;它具有自己的生命周期和接收事件的能力&#xff0c;它有以下特点 Fragment 依赖于 Activity&#xff0c;不能独立存在&#xff0c;Fragment 的生命周期受 Activity 的生命周期影响 Fragment 将 Activity 的 UI 和…

BUUCTF蜘蛛侠呀

解压后发现是流量包&#xff0c;好多icmp包 发现icmp包尾部有$$STRAT打头16进制的字符串&#xff0c;好多重复得。我们只需要提取尾部这些字符串是当icmp的type0时上图标识为褐色的字符串&#xff0c;还需要把16进制的字符串转为对应的字符串&#xff08;bytes 类型&#xff09…

YOLOv8改进 | 融合篇,YOLOv8主干网络替换为MobileNetV3+CA注意机制+添加小目标检测层(全网独家首发,实现极限涨点)

原始 YOLOv8 训练结果: YOLOv8 + MobileNetV3改进后训练结果: YOLOv8 + MobileNetV3 + CA 注意机制 + 添加小目标检测层改进后训练结果(极限涨点): 摘要 小目标检测难点众多,导致很多算法对小目标的检测效果远不如大中型目标。影响算法性能的主要原因如下:第一,小目…

Windows暂停更新

目录 前言注册表设定参考 前言 不想Windows自动更新&#xff0c;同时不想造成Windows商店不可用&#xff0c;可以采用暂停更新的方案。 但是通过这里设定的时间太短了&#xff0c;所以我们去注册表设定。 注册表设定 win r 输入 regedit进入注册表 HKEY_LOCAL_MACHINE\SOFT…

python 02 List

Python 1-14 列表 第一课 1437. 是否所有 1 都至少相隔 k 个元素 class Solution:def kLengthApart(self, nums: List[int], k: int) -> bool:cnt k # 处理第一个 1for i, x in enumerate(nums):if x 1:if cnt < k: return Falsecnt 0 # 遇到 1 从新记数else: cnt …

解决银河麒麟V10中/data目录执行权限问题

解决银河麒麟V10中/data目录执行权限问题 1、问题描述2、解决方案步骤一&#xff1a;编辑fstab文件步骤二&#xff1a;重启系统步骤三&#xff1a;验证更改 3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在使用银河麒麟桌面操作系…