我用Echarts图表分析巴西队历年战绩,预测卡塔尔世界杯能否夺冠

news2024/11/15 19:59:07

🐱个人主页:不叫猫先生
🙋‍♂️作者简介:前端领域新星创作者、华为云享专家、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀!
💫系列专栏:vue3从入门到精通
📝个人签名:不破不立

目录

    • 一、源数据
    • 二、安装Echarts
    • 三、背景图实现
    • 四、拐点自定义
    • 五、线条区域渐进色
    • 六、x轴拖拽
    • 七、X轴设置
    • 八、y轴设置
    • 写在最后

在刚刚结束的卡塔尔世界杯八分之一决赛中,巴西队以4:1轻松战胜韩国队,连续八届世界杯晋级八强,我的心情无比的激动,看着自己喜欢的球星,内心十分骄傲。
我统计了历年来巴西队战绩,并对数据进行处理,使用Echarts图表分析,来预测一波今年的战绩。我们来研究下图表具体是怎么实现的?

一、源数据

我通过网上的数据进行整理,具体如下:

[
	{ name: "1930年第1届", score: "第一轮", rank: "6" },
	{ name: "1934年第2届", score: "第一轮", rank: "14" },
	{ name: "1938年第3届", score: "季军", rank: "3" },
	{ name: "1950年第4届", score: "亚军", rank: "2" },
	{ name: "1954年第5届", score: "八强", rank: "5" },
	{ name: "1958年第6届", score: "冠军", rank: "1" },
	{ name: "1962年第7届", score: "冠军", rank: "1" },
	{ name: "1966年第8届", score: "第一轮", rank: "1" },
	{ name: "1970年第9届", score: "冠军", rank: "1" },
	{ name: "1974年第10届", score: "殿军", rank: "4" },
	{ name: "1978年第11届", score: "季军", rank: "3" },
	{ name: "1982年第12届", score: "第二轮", rank: "5" },
	{ name: "1986年第13届", score: "八强", rank: "5" },
	{ name: "1990年第14届", score: "十六强", rank: "9" },
	{ name: "1994年第15届", score: "冠军", rank: "1" },
	{ name: "1998年第16届", score: "亚军", rank: "2" },
	{ name: "2002年第17届", score: "冠军", rank: "1" },
	{ name: "2006年第18届", score: "八强", rank: "5" },
	{ name: "2010年第19届", score: "八强", rank: "6" },
	{ name: "2014年第20届", score: "殿军", rank: "4" },
	{ name: "2018年第1届", score: "八强", rank: "6" },
]

最终效果如下:
在这里插入图片描述

二、安装Echarts

安装:

yarn add echarts -S

引入使用:

<script setup lang="ts">
import * as echarts from "echarts";
import { ref, onMounted, getCurrentInstance, reactive } from "vue";
onMounted(() => {
    var myChart = echarts.init(document.getElementById("trendLIne-content"));
    myChart.setOption({ })
   })
</script>

三、背景图实现

可以看到图表使用了背景图片,那么具体是怎么实现呢?主要通过graphic实现,可配置以下内容实现背景图片,但是背景图片必须是以https开头才能显示

       graphic: [
            {
                // 图形元素类型
                type: "image", 
                // 更新或删除图形元素时指定更新哪个图形元素,如果不需要用可以忽略。
                id: "logo", 
                 // 根据父元素进行定位   (0%), 如果bottom的值是 0,也可以删除该bottom属性值。
                bottom: "13%",
                left: "6%",
                // 层叠
                z: 0, 
                // 决定此图形元素在定位时,对自身的包围盒计算方式
                bounding: "all", 
                style: {
                    image: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc2.hoopchina.com.cn%2Fuploads%2Fstar%2Fevent%2Fimages%2F200127%2Fb8b1f24f0c8fc6f860ce4a7c12054cb49b56654e.jpg&refer=http%3A%2F%2Fc2.hoopchina.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1673012465&t=b8a96c59fca94f5e18c660b3c2a6d616", 
                    width: 1055,
                    height: 540,
                },
            },
        ],

四、拐点自定义

设置symbol为base64编码的图片,并设置通过symbolSize设置大小

   series: [
            {
                symbolSize: 20,
                symbol: "image://+base64编码",
             }

五、线条区域渐进色

通过areaStyle设置区域渐渐色

    areaStyle: {
        normal: {
            opacity: 0.3,
            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                    offset: 0,
                    color: "red",
                },
                {
                    offset: 1,
                    color: "#fff",
                },
            ]),
        },
    },

六、x轴拖拽

设置自定义拖拽的icon为legendSvg,通过dataZoom属性设置拖拽的样式

const legendSvg = {
    line: "path://M-0.000,-0.000 L10.000,-0.000 L10.000,3.000 L-0.000,3.000 L-0.000,-0.000 Z",
};

        dataZoom: {
            show: true,
            icon: legendSvg.line,
            realtime: true,
            brushSelect: false, //取消拖动手柄
            start: 0,
            end: 70,
            height: 24,
            handleSize: "80%",
            // handleIcon: 'image://' + img,  //自定义拖拽图标
            handleIcon:
                "path://M512,512m-448,0a448,448,0,1,0,896,0a448,448,0,1,0,-896,0Z", //icon图标
            backgroundColor: "#F5F7FA",
        },

七、X轴设置

x轴属性解释具体如下:

  • xAxis :x轴设置
    • name:单位
    • splitLine:网格线
      • show:false (去除网格线)
    • data:x轴坐标显示的数据,数组类型
    • axisLine:设置x轴的轴线
      • show:true(设置显示)
      • lineStyle:设置轴线的样式
        • color:颜色
        • width:宽度
        • type:线条类型
    • axisLabel:设置x轴文字样式
      • textStyle:文字样式,对象类型
        • show:是否展示
        • fontSize:字体大小
        • color:文字颜色
      • formatter:自定义文字,后面跟一个函数,默认会一个参数,x坐标的值
        xAxis: {
            type: "category",
            splitLine: {
                show: false,
            },
            interval: "auto", // x轴间距
            data: data.map((item) => item.name),
            axisTick: {
                //刻度线
                show: false,
            },
            axisLine: {  ,
                show: true, // 把x轴从实线变成虚线
                lineStyle: {
                    // 设置x轴线条样式的颜色
                    color: "#999",
                    width: 3,
                    type: "solid",
                },
            },
            axisLabel: {
                textStyle: {
                    color: "#000", //坐标轴字颜色
                    fontSize: 14,
                },
            },
        },

八、y轴设置

y轴的属性与x轴基本相同

  yAxis: {
            type: "value",
            name: "排名",
            splitLine: {
                show: false,
            },
            textStyle: {
                color: "#000", //坐标轴字颜色
            },
            scale: true,
            max: 17,
            min: 0,
            splitNumber: 20,
            axisLine: {
                show: true,

                lineStyle: {
                    // 设置x轴线条样式的颜色
                    color: "#999",
                    width: 3,
                    type: "solid",
                },
            },
            axisLabel: {
                textStyle: {
                    color: "#000", //坐标轴字颜色
                    fontSize: 14,
                },
            },
        },

写在最后

经过统计分析,巴西队夺冠机会还是非常大的。希望桑巴舞者内巴尔能够实现自己的梦想,他真的很热爱足球⚽️!!!在赛场上从哭泣一夜到喜笑颜开,从受伤后返回赛场,跳起那桑巴舞。内马尔,To Be Number One!

在这里插入图片描述

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

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

相关文章

baostock量化怎样下载十档行情数据?

baostock量化对数据的下载其实就是通过计算的方式去决策股票的买卖。目前根据量化计算方式其实跟量子计算一点关系都没有。那么&#xff0c;都说在股票量化交易过程中&#xff0c;可以利用l2股票接口来获取策略选股的方案是很普遍的&#xff0c;利用数据接口下载十档行情&#…

[附源码]Python计算机毕业设计SSM基于协同过滤算法的甜品推荐系统(程序+LW)

项目运行 环境配置&#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…

Echart柱状图表排名

var charts { // 按顺序排列从大到小 cityList: [38号点, 8号点, 15号点, 16号点, 24号点], cityData: [7500, 6200, 5700, 4200, 3500] } var top10CityList charts.cityList var top10CityData charts.cityData var color [#ff9500, #02d8f9, #027fff] var color…

CAS:1351272-41-7;[1-(4-乙烯基苯基)-1,2,2-三苯基]乙烯;AIE材料

中文名称:[1-(4-乙烯基苯基)-1,2,2-三苯基]乙烯 英文名称:(2-(4-vinylphenyl)ethene-1,1,2-triyl)tribenzene CAS:1351272-41-7 分子式:C28H22 分子量:358.47 沸点:460.445.0 C(Predicted) 密度:1.0810.06 g/cm3(Predicted) 用途:仅用于科研,不用于人体 提供提下定制合成…

算法 KECP 被顶会 EMNLP 收录,极少训练数据就能实现机器阅读理解

作者&#xff1a;王嘉宁、汪诚愚、邱明辉、石秋慧、王洪彬、黄俊、高明 近日&#xff0c;阿里云机器学习平台 PAI 与华东师范大学高明教授团队合作在自然语言处理顶级会议 EMNLP2022 上发表基于 Prompt-Tuning 的小样本机器阅读理解算法 KECP&#xff08;Knowledge Enhanced C…

【人工智能】体验一下ChatGPT

体验一下ChatGPT 1.体验地址 chatGPT 注册openai的账号 注意:如果注册过程中一直不成功,可以清清缓存 2.接受短信的手机号 得有个国外手机号&#xff0c;或者1块钱去sms-activate.org注册一个虚拟的手机号 3.功能 最近OpenAI 发布了备受期待的原型通用 ChatGPT&#xf…

一段eslint jsx-a11y/anchor-is-valid警告背后的原因

我们在做React项目时&#xff0c;经常用到a标签做一些跳转动作&#xff0c;但是每次eslint都要提示 jsx-a11y/anchor-is-valid这段代码&#xff0c;我们可以通过/* eslint-disable jsx-a11y/anchor-is-valid */把这个规则屏蔽掉&#xff0c;但是显然不够优化&#xff0c;那到底…

8_2、Java基本语法之多线程的两种创建方式(jdk5之前)

一、前言 Java语言的JVM允许程序运行多个线程&#xff0c;它通过java.lang.Thread 类来体现。 二、JDK1.5之前创建新执行线程有两种方法 继承Thread类的方式 实现Runnable接口的方式 三、继承Thread类的方式 1、使用继承Thread类的方式创建一个线程&#xff1a; ①.创建一个…

c++17可变参函数模板详解

c语言中对于 可变参数的处理是用va_list等一系列宏去做的 他只会生成一个函数 但是理解起来非常麻烦 因为你不得不去了解很多关于汇编层面栈帧的知识 c对于可变参数函数模板进行了改进 他会生成多个函数 而不是在一个函数里玩 个人觉得c这种方式更加先进而且更好理解 接下来让…

线性代数的本质

注&#xff1a;目前没有精力去美化排版&#xff0c;所有博客仅作为自己学习记录所用 《线性代数的本质》课程链接&#xff08;bilibili&#xff09; 目录&#xff1a; P1-P4的内容&#xff1a; 1.线性代数的加法&#xff1a;为什么这样子来定义呢&#xff08;如图&#xff…

(附源码)SSM人力资源管理系统 毕业设计 271621

SSM人力资源管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#…

Servlet(二):Servlet的运行原理HttpServlet、HttpServletRequest、HttpServletResponse类详解

Servlet运行原理Servlet API详解HttpServlet类HttpServletRequest类HttpServletResponse类Servlet API详解 Servlet API中包含了很多的内容&#xff0c;但我们主要用到的是以下三个类&#xff0c;HttpServlet&#xff0c;HttpServletRequest&#xff0c;HttpServletResponse …

2022-04-10-Docker

layout: post #标题配置 title: Docker #时间配置 date: 2022-04-10 22:50:00 0800 #目录配置 categories: Docker #标签配置 tag: 学习笔记 content {:toc} Docker 1.初识 Docker 1.1 docker概念 我们写的代码会接触到好几个环境&#xff1a;开发环境、测试环境以及生产环…

祖师爷香农,到底有多神?

1916年&#xff0c;第一次世界大战激战正酣。在这一年的4月30日&#xff0c;远离战场的美国密歇根州佩托斯基&#xff08;Petoskey&#xff09;&#xff0c;一个男婴呱呱坠地。这个男婴&#xff0c;就是我们这篇文章的主角——香农。香农的全名&#xff0c;叫做克劳德艾尔伍德香…

Alvas.Audio专门为C#和VB.Net程序员设计

Alvas.Audio专门为C#和VB.Net程序员设计 Alvas.Audio库使C#和VB.Net程序员能够创建执行(包括混合声音信息)、捕获、转换和编辑音频的应用程序。 Alvas.Audio音频是C#音乐库。Web程序员。 这使您能够生产。NET程序&#xff0c;例如Winforms/WPF/Windows服务/控制台录音机、Inter…

steam搬砖项目,新手也能月入8000+(详细教程)

大家好&#xff0c;我是阿阳 这个项目很早之前就有了&#xff0c;而且这么久以来一直非常稳定。 作为一名没有任何经验却想通过低成本投入来赚钱的小白&#xff0c;做steam搬砖项目真的可以实现财富自由 0成本&#xff0c;操作简单&#xff0c;有手机就能做&#xff01;真的…

【Golang】欲入此Go先看Go的基本语法

&#x1f4d3;推荐网站(不断完善中)&#xff1a;个人博客 &#x1f4cc;个人主页&#xff1a;个人主页 &#x1f449;相关专栏&#xff1a;CSDN专栏、个人专栏 &#x1f3dd;立志赚钱&#xff0c;干活想躺&#xff0c;瞎分享的摸鱼工程师一枚 &#x1f34a;前言 完成了我们众多…

OpenAI 最强对话模型 ChatGPT 注册使用笔记

2022年12月5日OpenAI 发布了对话语言模型 ChatGPT&#xff0c;并开放了免费试用。ChatGPT 是一款基于GPT3模型的聊天机器人&#xff0c;该聊天机器人可以在模仿人类说话风格的同时回答大量的问题。在现实世界之中&#xff0c;例如数字营销、线上内容创作、回答客户服务查询&…

Python使用Opencv图像处理方法完成手势识别(一)

Opencv完成手势识别HSV的提取特征提取轮廓绘制完整代码由于是使用Opencv完成手势识别&#xff0c;所以首先利用颜色特征是对手的颜色进行提取&#xff0c;获得HSV的最小值与最大值。HSV的提取 HSV颜色空间阈值主要是靠Trackbar调节阈值和cv2.inRange来生成掩膜来提取。 这是我…

外汇天眼:外汇市场上不得不说的两大类庄家!

前一阵子&#xff0c;天眼君跟好友讨论外汇市场上有没有庄家&#xff0c;今天天眼君就跟大家探讨下这个问题。我们都知道股票交易中是有所谓的庄家的&#xff0c;散户必须要猜测庄家的做法&#xff0c;否则很有可能变成待割的韭菜。 而我们常见的对外宣传中&#xff0c;基本上…