【JavaScript】用echarts绘制饼图

news2024/11/24 2:23:02

🙋‍ 哈喽大家好,本次是JavaScript专栏echarts板块第一期
⭐本期内容:用echarts绘制饼图
🏆系列专栏:JavaScript
👍一起学习,一起加油!


文章目录

  • 前言
  • 效果图
  • 思路
    • 准备一个dom
    • 基于准备好的dom,初始化echarts实例
    • 指定图表的配置项和数据(对象)
  • HTML
  • 总结


前言

echarts(Enterprise Charts,商业级数据图表)是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。


效果图

在这里插入图片描述

思路

准备一个dom

先在body中设置一个div,设置id,宽度和高度

在这里插入图片描述

在头部引入echarts的js文件

在这里插入图片描述

在body中添加一个script标签,用于编写代码。

在这里插入图片描述

添加setOption将刚指定的配置项和数据显示图表。

在这里插入图片描述

基于准备好的dom,初始化echarts实例

使用init将准备好的dom进行初始化,也可以引入喜欢的主题,默认的有dark和light。找到合适的主题后,要在头部引用。

在这里插入图片描述

大家也可以在官网上找到自己喜欢的主题,下载即可,如果没有找到喜欢的,也可以自定义主题。
echarts官网地址:https://echarts.apache.org

在这里插入图片描述
在这里插入图片描述

指定图表的配置项和数据(对象)

设置数据,这里数据是数组的形式,一个对象包括了name和value两个属性,属性用键值对的方式进行设置。我这里的数据是各个省份疫情未新增天数
数据是上个月的某一天,不一定真实,仅供实现效果,杠就是你对👀

在这里插入图片描述

在option中指定图表的配置项和数据

在这里插入图片描述

设置标题的内容,位置居中,距离上边距50px。

在这里插入图片描述

toolbox是工具栏组件相关的行为,必须引入工具栏组件后才能使用。 这里使用show显示工具栏,feature是各工具的配置项。

在这里插入图片描述

设置鼠标移动到相应色块的效果和图例的位置

在这里插入图片描述

设置系列配置项,设置图的类型、数据、标签等。
label为标签,用show显示标签,formatter为回调函数,返回标签显示的内容。
radius是院的内外半径,center是图的位置。
rosetype是圆心角的类型,area是每个部分圆心角不变,radius是圆心角会变化。
设置选中偏离原点一小段距离,selectedMode是类型,selectedOffset是偏移量。

在这里插入图片描述

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>饼图</title>
    <script src="./echarts.js"></script>
    <script src="./dark.js"></script>
  </head>
  <body>
    <div id="main" style="width: 1000px; height: 800px"></div>
    <script type="text/javascript">
      // 2.基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById("main"), "dark");
      // 设置数据,对象,name和value属性
      var pieData = [
        {
          name: "北京",
          value: 1,
        },
        {
          name: "上海",
          value: 1,
        },
        {
          name: "黑龙江",
          value: 17,
        },
        {
          name: "吉林",
          value: 9,
        },
        {
          name: "辽宁",
          value: 9,
        },
        {
          name: "内蒙古",
          value: 22,
        },
        {
          name: "新疆",
          value: 23,
        },
        {
          name: "西藏",
          value: 42,
        },
        {
          name: "青海",
          value: 35,
        },
        {
          name: "四川",
          value: 7,
        },
        {
          name: "云南",
          value: 20,
        },
        {
          name: "陕西",
          value: 21,
        },
        {
          name: "重庆",
          value: 16,
        },
        {
          name: "贵州",
          value: 24,
        },
        {
          name: "广西",
          value: 16,
        },
        {
          name: "海南",
          value: 21,
        },
        {
          name: "澳门",
          value: 37,
        },
        {
          name: "湖南",
          value: 12,
        },
        {
          name: "江西",
          value: 13,
        },
        {
          name: "福建",
          value: 14,
        },
        {
          name: "安徽",
          value: 13,
        },
        {
          name: "浙江",
          value: 7,
        },
        {
          name: "江苏",
          value: 22,
        },
        {
          name: "宁夏",
          value: 8,
        },
        {
          name: "山西",
          value: 16,
        },
        {
          name: "河北",
          value: 13,
        },
        {
          name: "天津",
          value: 13,
        },
      ];

      // 3.指定图表的配置项和数据(对象)
      var option = {
        title: {
          text: "各省份疫情未新增天数",
          left: "center",
          right: "center",
          top: "50px",
        },
        toolbox: {
          show: true,
          feature: {
            mark: { show: true },
            dataView: { show: true, readOnly: false },
            restore: { show: true },
            saveAsImage: { show: true },
          },
        },
        tooltip: {
          trigger: "item",
        },
        legend: {
          left: "center",
          top: "bottom",
        },
        series: [
          {
            type: "pie",
            data: pieData,
            label: {
              //显示文字
              show: true,
              formatter: function (arg) {
                return arg.name + "未新增" + arg.value + "天";
              },
            },
            radius: [60, 300],
            center: ["50%", "50%"],
            roseType: "area",
            itemStyle: {
              borderRadius: 5,
            },
            // 选中偏离原点一小段距离
            selectedMode: "single",
            selectedOffset: "30", //偏移量
          }
        ]
      };

      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    </script>
  </body>
</html>


总结

以上就是今天的学习内容啦~
如果有兴趣的话可以订阅专栏,持续更新呢~
咱们下期再见~
在这里插入图片描述

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

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

相关文章

网络安全对避免勒索软件侵害的5个原因

近几年来&#xff0c;勒索病毒已成为全球最热门的关键字之一&#xff0c;已造成了及其严重的经济损失。许多企业意识到这种情况&#xff0c;并试图集中精力保护自己免受这类威胁。在这里本人结合案例分享出5个原因&#xff0c;以让更多企业避免勒索软件的侵害。 原因1.勒索软…

【C++】模拟实现STL容器:list

目录 一、list的介绍 二、list的排序 三、迭代器 1、list的迭代器失效问题 2、迭代器的功能分类 3、list迭代器的模拟实现 3.1普通迭代器 3.2const迭代器 4、迭代器价值 5、迭代器operator->的重载 四、模拟实现时遇到的困惑及注意点 1、调用拷贝构造时&#xf…

Spring Cloud Gateway核心过滤器之请求限流详解

环境&#xff1a;SpringBoot2.4.13 Spring Cloud Gateway3.0.1 概述 RequestRateLimiter GatewayFilter工厂使用一个RateLimiter实现来确定当前请求是否允许继续。如果不是&#xff0c;返回HTTP 429 - Too Many Requests(默认情况下)的状态。 该过滤器接受一个可选的keyReso…

基于51单片机的贪吃蛇游戏设计

1绪 论 1.1本课题研究的背景及意义 随着当今社会的发展&#xff0c;人们的生活节奏变得越来越快&#xff0c;人们开始逐渐的融入全球化的世界。人们已经不再局限于一小块天地&#xff0c;加班&#xff0c;出差已经占据了现代人生活的绝大部分。这个时候&#xff0c;一款简单易携…

ChatGPT 体验和思考

一、体验 1、辅助写代码 2、检查代码&#xff08;遗憾的是&#xff0c;不一定是对的&#xff09; 3、分析代码 4、帮你了解/入门一项陌生的技术 小结&#xff1a; AI 会慢慢成为程序员的得力帮手&#xff0c;但目前来看&#xff0c;似乎还是不够成熟。 当然&#xff0c;大多…

《软件工程》2013年期末试卷

北京信息科技大学《软件工程》2013年期末试卷

青岛山水新城二期景观设计 全套设计

目录 1前言 2 1.1 青岛市地理位置与自然概况 2 1.2 山水新城小区概况 3 1.3设计的目的和意义 4 1.4小区园林景观设计现状和发展趋势 5 2本论 6 2.1设计依据 6 2.1.1 平面规划图 6 2.1.2 国家及地方有关规定及标准 6 2.2 设计指导思想 6 2.2.1 “以人为本”的设计理念 6 2.2.2 “…

PHP毕业设计毕设辅导课(1):PHP 基础语法

PHP 基础语法 PHP 脚本在服务器上执行&#xff0c;然后将纯 HTML 结果发送回浏览器。 PHP 基本的语法和输出 PHP 脚本可以放在文档中的任何位置。 <?php // PHP 代码 ?>PHP 脚本以 <?php 开始&#xff0c;以 ?> 结束&#xff0c;代码示例如下&#xff1a; …

[附源码]Python计算机毕业设计Django天狗电子商城系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

用Prophet在Python中进行时间序列预测

预测通常被认为是报告的发展。报告可以帮助我们回答&#xff0c;发生了什么事&#xff1f;预测有助于回答下一个逻辑问题&#xff0c;将会发生什么&#xff1f; 最近我们被客户要求撰写关于时间序列预测的研究报告&#xff0c;包括一些图形和统计输出。 Prophet的目的是“使专…

[附源码]Python计算机毕业设计Django酒店客房管理信息系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

问题解决:记录一次Linux服务器根目录突然爆满

一、出问题了 过了个双休来到公司&#xff0c;同时发现Linux终端的服务器状态中根目录空间直接爆满100%&#xff0c;周五走之前根目录仅仅使用了59%&#xff0c;同时项目服务的后台不停的有日志打印&#xff0c;而且测试的小伙伴说系统登录不上去了。下面记录一下个人排查并解…

CORTEX-A7芯片中断系统基本原理与控制方法

大家好&#xff0c;今天主要和大家聊一聊&#xff0c;如何使用高端芯片的中断系统的方法。 目录 第一&#xff1a;中断的基本简介 ​第二&#xff1a;GIC控制器介绍 第一&#xff1a;中断的基本简介 中断系统是一个处理器重要的组成部分&#xff0c;中断系统极大的提高了CPU的…

Webpack5 快速入门

1. webpack 介绍 2. webpack 基本使用 3. webpack 5大核心概念 4. webpack 配置文件 5. webpack 运行脚本 6. webpack 处理样式资源 一、处理 css 资源 二、处理 less 资源 三、处理 scss 资源 四、处理 stylus 资源 7. webpack 处理图片资源 8. webpack 文件输出目录…

[附源码]计算机毕业设计基于Springboot校园租赁系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【STM32学习(4)】STM32简述定时器

一、什么是定时器 有计时和定时功能的仪器组件——对于芯片来说&#xff0c;定时器含有计时和定时功能&#xff0c;片内模块——TIM 二、STM32F4xx系列定时器分类 片内外设定时器&#xff08;14个&#xff09; 高级定时器&#xff1a;TIM1、TIM8通用定时器&#xff1a;TIM2…

SASE和零信任--傻傻分不清楚

零信任和SASE&#xff0c;分别来自于两家世界级咨询公司Forrester与Gartner。 首先&#xff0c;Forrester提出零信任&#xff0c;成为近十年来最重要的安全创新理念。然后&#xff0c;Gartner提出SASE&#xff08;安全访问服务边缘&#xff09;&#xff0c;在零信任的基础上面…

[附源码]计算机毕业设计天狗电子商城系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【浅学Java】SpringBoot 配置文件

SpringBoot 配置文件1. 配置文件的作用2. 配置文件的格式.properties配置文件的格式.properties配置文件的缺点.yml配置文件的格式.yml配置文件的优点3. 配置文件的分类3.1 两种类型配置文件3.2 用户自定义配置项4. 配置信息读取4.1 自定义配置信息读取4.2 系统配置信息读取4.3…

MySQL高可用方案之MHA

目录 一、简介 二、MHA特点 三、搭建MySQL MHA 1、安装MHA 2、在所有服务器上配置无密码认证 3、在manager节点上配置MHA 4、 manager节点编辑配置文件&#xff0c;管理 mysql 节点服务器 5、在Master服务器上手动开启vip 6、在 manager 节点上测试 ssh 无密码认证 7、…