英雄联盟LPL比赛数据可视化详细教程,可视化的魅力,你值得拥有!!!

项目四:利用ECharts可视化Spring Boot后端提供的数据 利用ECharts将Spring Boot后端提供的数据可视化展示 阅读详情

LPL比赛数据可视化

效果图

完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识
html+css+javascript+jQuery+python+requests+numpy+mysql+pymysql+json+ajax+flask+echarts
在这个过程中,并不是那么顺利,遇到了很多坑,好在全部都已经解决
在整个页面全部功能运行成功的那一刻,我感觉幸福极了
下面我就带领大家实践一下,怎么从无到有

如果觉得涉及的知识太多,实践起来困难的同学.不要怕,我专门做了一期视频一分钟上手此项目,点我观看视频

需要用到的Python第三方库:flask,requests,pymysql,numpy
听说看着源码读文章绝配哦点我下载源码
点我直达可视化页面

绘制前端页面

整个页面可划分为10个盒子,使用HTML和CSS就可以把最基础的框架搭建出来,大家都是pink老师的学生,怎么在页面中写盒子我就不多说了,我主要讲解一下如何将echarts的图表插入到页面中来
图1

什么是Echarts

Echarts官方网站
ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求

ECharts 遵循 Apache-2.0 开源协议,免费商用

ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示

第一个 ECharts 实例
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
 
        // 指定图表的配置项和数据
        var option = {
            title: {
                text: '第一个 ECharts 实例'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        };
 
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
</body>
</html>

第一个实例链接:https://syjun.vip/image/lpldata/firstecharts.html

使用Echarts的前提是你需要掌握HTML和Javascript的知识,毕竟Echarts是基于JS开发
观察源码不难发现,引入了外部文件[echarts.js] 如果不引入,程序将无法正常运行
基于准备好的div,绑定事件,初始化echarts实例
指定图表的配置项和数据,即可显示图表
大致流程:引入所需文件,在HTML定义好div盒子,在JS中绑定事件,初始化echarts实例,指定图表的配置项和数据

项目中的Echarts

1.引入所需文件
图2

说明:上面第一个实例将echarts的代码写在了HTML文件中,而我为了后期维护起来方便,就分开写了,所以需要引入[js.js]文件,也就是我把关于echarts的代码都写在了[js.js]文件中

2.在HTML定义好div盒子
图3

3.在JS中绑定事件,初始化echarts实例
图4

4.指定图表的配置项和数据

代码过多,请到源码中查看

Echarts部分小总结

Echarts部分不是很难,直接到Echarts官网实例中找你想要的图表,然后复制代码,修改图表的配置和数据即可。我知道你肯定要问“代码中的一些属性我根本就不知道怎么去使用,怎么办嘛” 不要方,请到Echarts官网文档查看

项目中一共用了5种Echarts图表,使用的方法大同小异,我相信你可以举一反三

前端的页面绘制完毕后,你会发现一个问题。数据都写死的,而比赛数据几乎每天都在更新。每天去源码中修改对应的数据部分,过不了几天我想你肯定会厌倦。解决的方法肯定是有的,不光只是爬虫,还要向Echarts中插入数据(肯定不是手动插,而是机器插)。欲知后事如何,请往下看

爬取比赛数据

在讲解爬取数据之前,我还是想简单介绍一下什么是爬虫,回答大家对于爬虫的一些误解;假定大家都有一定的爬虫基础

什么是爬虫

爬虫,全称[ 网络爬虫(web crawler)]
百度百科的解释:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

我所理解的爬虫,就是写程序获取指定网页中对自己有用的内容。其中包括文字,图片,音频,视频等

爬虫违法吗

我的回答是:违法但又合法

当我学会爬虫后,经常有一些和我玩得不错的朋友,跟我开玩笑说“爬虫写得好,牢饭吃得饱”之类的话,有些话听着还挺感动,结果并不是那样,比如“放心,我会来给你送牢饭的” /微笑

爬虫肯定是有风险的,那我们该如何避免呢

  1. 遵守 Robots 协议,但有没有 Robots 都不代表可以随便爬
  2. 限制你的爬虫行为,禁止近乎 DDOS 的请求频率,一旦造成服务器瘫痪,约等于网络攻击
  3. 对于明显反爬,或者正常情况不能到达的页面不能强行突破,否则是 Hacker 行为
  4. 最后,审视清楚自己爬的内容,以下是绝不能碰的红线(包括但不限于):
    爬取用户个人数据非法牟利,包括模拟登录他人账号等

爬虫本身并不违法,而是看你使用的方式和目的,还要看是不是商业用途

各行各业从不差坏人,就在我们身边的网络上,已经密密麻麻爬满了各种网络爬虫,它们善恶不同,各怀心思。而越是每个人切身利益所在的地方,就越是布满了爬虫

数据从何而来

点我查看官网比赛数据
图5
这个网站很特别,是一个动态的网站。如果说只是简单的使用requests获取页面的源码;虽然可以获取到数据,但是数据只有当前显示的一页。我最开始的想法是使用selenium这个可以操控浏览器的第三方库,进行数据的获取。代码写完后,获取数据没什么问题,就是速度太慢了,我也利用requests重新写了爬虫程序,速度提升非常明显(selenium用时20s,requests用时2s;两个程序还包括了将数据写入数据库的代码)

所有,selenium版本的爬虫我不会讲,主要还是讲解requests的版本


现在,我们来到官网,右键点击检查(如果是谷歌浏览器,按F12也可以),点击【Network】
图6
按CTRL+R 刷新一下
在【name】下方找到【LOL_MATCH2_MATCH_TEAMRANK_LIST_134_7_8.js】,接着点击【Preview】,你就会看到这么一个界面
图7
观察右边的数据,是不是就是战队的信息,只不过就是用json包装起来了而已,利用Python简单处理一下就能获取到你想要的数据。这些数据是用接口形式传输的,我们就可以直接爬取接口

点击旁边的【Headers】,复制【Request URL】后面的网址,我们来到Pycharm
图8

我们打印一下请求的网址

import requests

def get_info(url):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'}
    response = requests.get(url=url,headers=headers)
    return response.text
info = get_info('https://lpl.qq.com/web201612/data/LOL_MATCH2_MATCH_TEAMRANK_LIST_134_7_8.js')
print(info)

输出结果:
图9

可以看出所有的战队信息已经获取成功,可是输出的内容是一个str(字符串)对象,我们需要使用json.loads()函数将str对象转换为dict(字典)对象。再使用字典和列表的方法就可以将想要的数据提取出来,并且存放到另外一个字典里面

import requests
import json

def get_info(url):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'}
    response = requests.get(url=url,headers=headers)
    return response.text
info = get_info('https://lpl.qq.com/web201612/data/LOL_MATCH2_MATCH_TEAMRANK_LIST_134_7_8.js')

info = json.loads(info) #将str对象转换为dict(字典)对象
info_msg = info['msg']  #使用字典里面的键获取对于的值

#队名
teamName = [data['sTeamName'] for data in info_msg]
#出场次数
out_count = [data['iAppearancesFrequency'] for data in info_msg]
#胜场
win = [data['iWin'] for data in info_msg]
#败场
loss = [data['iLoss'] for data in info_msg]
#胜率
win_rate = [int(str((int(data['iWin'])/(int(data['iWin'])+int(data['iLoss'])))*100)[:2]) for data in info_msg]
#总击杀
kill_sum = [data['iKill'] for data in info_msg]
#总死亡
death_sum = [data['iDeath'] for data in info_msg]
#插眼
placed_eye = [int(float(data['sAveragingWardPlaced']))for data in info_msg]
#排眼
killed_eye = [int(float(data['sAveragingWardKilled']))for data in info_msg]

infos_list = [('队名',teamName),('出场次数',out_count),('胜场',win),
              ('败场',loss),('胜率',win_rate),('总击杀',kill_sum),
              ('总死亡',death_sum),('插眼',placed_eye),('排眼',killed_eye)]
info_dict = {key:value for key,value in infos_list}
print(info_dict)

输出结果:
图10
在上面的程序当中,我运用列表推导式,字典推导式,很轻松的就拿到了想要数据。如果你还看不懂推导式,你可以到我这篇文章看看Python高级编程之列表推导式、字典推导式、集合推导式

其实,列表推导式还有更简单的写法,你可以去源码当中的【spider_api.py】文件中,第125行代码查看,117-122行注释的代码就是未优化的代码,留个小小的彩蛋,期待你去发现

聪明的你肯定已经发现了,这只是LPL战队的数据,那么队员和英雄的数据接口在哪里呢,刚才检查网页的时候,也没有发现.不要方,接着往下看 ::aru👅:

动态网站,其他数据接口在哪里

我们回到官方网站,点击【个人数据】
图11
接着右键检查,找到【LOL_MATCH2_MATCH_PERSONALRANK_LIST_134_7_8.js】
图12
获取数据的方法就和上面的类似了,我相信你可以举一反三


然而,获取英雄数据就不是那么顺利了
还是回到官网,点击【英雄数据】
还是右键检查,找到【LOL_MATCH2_MATCH_HERORANK_LIST_134_7_8.js】
图13
你会惊奇的发现,为什么没有英雄的名字,而只有【iChampionId】和其他数据
于是,我们大胆的猜测,这些【iChampionId】会不会是英雄对应的ID呢?

寻找英雄名称

想查看英雄的名称,我脑袋里面第一个蹦出了的想法就是英雄联盟官网
老规矩,右键检查,找到【hero_list.js】,Amazing呀!
图14
你仔细看,发现英雄名称前面有个【heroId】,会不会就和我们刚才看到的【iChampionId】相对应呢?
你不用去对比啦,我已经对比过了,就是相对应的,嘿嘿


虽然已经找到英雄名称,但是新的问题又来了
从两个接口获取到的数据,怎么保证【iChampionId】的英雄匹配到正确的名称
如何获取数据,我就不多嘴了,详细代码请查看源码.我这里主要讲解一下如何匹配正确的英雄名称

name = []
    for i in hero_key_id_top60:
        for j in hero_name_id_list:
            if i == j :
                #由于从lpl数据页面无法获取到英雄名称,只能获取到对应的id
                #一层循环是pick率前60的英雄id,二层是所有英雄的的id
                #通过if判断,将pick率前60的英雄写入到指定列表中
                name.append(hero_name_list[hero_name_id_list.index(j)])

【hero_key_id_top60】中的内容:
图15
【hero_name_id_list】中的内容:
图16
【hero_name_list】中的内容:
图17
【name 】中的内容:
图18

数据已到位,下一步导入数据库

数据库交互

首先,请在你的电脑上面创建一个名为【lpl】的数据库,不需要建表,后面我会讲解如何用pymysql建表

导入数据

我们需要连接自己的数据库
代码如下,值得注意的是,passwd='你自己数据库的密码’
如果说看不懂代码,可以先去了解一下MySQL和pyMySQL

import pymysql

def mysql():
    db = pymysql.connect(
        host='localhost', user='root',
        passwd='123456', db='lpl', charset='utf8')
    cur = db.cursor()
    return db,cur

数据库连接成功后,我们以【战队排行榜】为例

db, cur = mysql()
    try:

        # 是否存在这个表,若存在就删除,【战队排行榜前五】为表的名称
        cur.execute("DROP TABLE IF EXISTS 战队排行榜前五")
        # 创建表sql语句
        set_sql_top5 = """                             
                    create table 战队排行榜前五(
                    战队名称 varchar(20),
                    出场次数 varchar(10),
                    胜率 varchar(10))
                      """
        # 执行sql语句
        cur.execute(set_sql_top5)
        db.commit() # 保存

        # 准备写入数据的sql语句
        save_sql_top5 = "INSERT INTO 战队排行榜前五 values(%s,%s,%s);"
        # 写入数据库,参数一:写入的sql语句  参数二:数据,类型为列表,里面的元素类型是元组
        cur.executemany(save_sql_top5,info_list)
        db.commit()

        print("写入数据库成功")
    except Exception as e:
        print("创建数据库失败:case%s" % e)

【info_list】当中的数据
图19

数据库中的数据
图20

取出数据

数据库还是需要连接的,我们任然以【战队排行榜】为例

import pymysql

def mysql():
    db = pymysql.connect(
        host='localhost', user='root',
        passwd='123456', db='lpl', charset='utf8')
    cur = db.cursor()
    return db,cur
def query(sql):
    db,cur = mysql()
    cur.execute(sql)    #执行传入的sql语句
    res =cur.fetchall() #获取sql语句字段中的所有数据
    return res

#sql语句,从【战队排行榜前五】这张表中,选择战队名称,出场次数,胜率
sql_wings = 'SELECT 战队名称,出场次数,胜率 FROM 战队排行榜前五'

infos_wings = query(sql_wings) #取出数据
#print(infos_wings) : (('TES', '40', '75%'), ('JDG', '43', '72%'), ('V5', '49', '61%'), ('IG', '44', '59%'), ('SN', '52', '59%'))

name = [info[0] for info in infos_wings]
out_count = [info[1] for info in infos_wings]
win_rate = [info[2] for info in infos_wings]
infos_list = [('name', name), ('outcount', out_count), ('winRate', win_rate)]

#为什么最后要转换成字典的形式,我会在后面向前端传输数据的时候讲解
infos_dict = {key: value for key, value in infos_list}
#print(infos_dict)
#{'name': ['TES', 'JDG', 'V5', 'IG', 'SN'], 'outcount': ['40', '43', '49', '44', '52'], 'winRate': ['75%', '72%', '61%', '59%', '59%']}

Web程序开发

什么是Web程序

Web应用程序是一种可以通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问应用程序。用户只需要有浏览器即可,不需要再安装其他软件
能够开发web程序的编程语言有很多,比如Java,Php,Python等
而我们选择用Python进行开发,使用Falsk框架进行快速开发

什么是Falsk

Flask是一个使用 Python编写的轻量级Web应用框架。其WSGl( Python Web Server Gateway Interface)工具包采用 Werkzeug,模板引擎则使用 Jinja2,是目前十分流行的Web框架
这里给大家推荐一期视频,Flask快速入门.由于我的能力有限,还请大家花点时间将视频看完,再接着往后看文章

使用Flask连接前端页面

假定大家已经看完了视频,嘿嘿

使用pycharm创建一个flask项目,会自动帮我们生成两个文件夹【templates】【static】和一个python文件【app.py】
我们需要将写好的HTML文件放在【templates】目录下,CSS、JS和所用到的图片放在【static】目录下,如下图所示
图21

值得注意的是,也是一个坑,HTML文件当中,引用的外部文件,文件地址一定要去修改。因为我们是先写好的前端页面,而flask当中需要我们将外部文件都放在【static】当中

[注意事项]
修改前
图22
修改后
图23

引入模板

这里所说的模板,就是我们写好的HTMl文件,只不过需要使用render_template()将其引入

import lpldata
from flask import Flask,render_template

app = Flask(__name__)
LPL = lpldata.Lpl_Data()#从数据库获取数据

@app.route('/')#默认路由
def hello_world():
    return render_template("index.html")#引入模板

使用Ajax传输数据

什么是Ajax

Ajax是Asynchronous Javascript and XML的简称,通过Ajax向服务器发送请求,接收服务器返回的json数据,然后使用 Javascript修改网页,来实现页面局部数据更新。使用 Jquery框架可方便的编写Ajax代码,需要 Jquery.js文件

基本格式

$.ajax({
    type:"post",     //请求类型
    url:"/目标路由",  //请求地址
    data:{},         //数据
    datatype:"json",
    success:function (data) {
        //请求成功的回调函数,data是返回的数据
    },
    error:function () {
        //请求失败时执行
    }
})

我们先到app.py文件中,定义好一个路由(/wingsvd),methods添加一个’post’,这里以【战队胜负图表】为例

@app.route('/wingsvd',methods=['GET','POST'])
def wings_vd():
    return LPL.get_wings_vd()

LPL.get_wings_vd(),你可以到lpldata.py文件查看相关的代码。主要功能就是从数据获取数据,并且将数据整理好后,存到字典里面,最后使用json.dumps()将dict(字典)对象转换为json对象,最为函数的返回值返回

现在回到Ajax的部分,你可以到【js.js】文件中359行查看

function echarts_4() {
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('echart4'));
    var lpl = {};
    $.ajax({
        url:'/wingsvd', //这里的地址是不是很眼熟,没错就是刚才定义的路由地址
        data: {},
        type: 'POST',
        async: false,
        dataType:'json',
        success: function (data) {
            lpl.name = data.name;  // 使用json的方法,提取刚才LPL.get_wings_vd()返回的数据
            lpl.victory = data.victory;
            lpl.defeat = data.defeat;
            lpl.winRate = data.winRate;
......

数据提取成功后,就可以在后面的echarts代码中修改对应的配置,图表就可以显示出数据啦

这里以图表的X轴为例

xAxis: [
           {
                type: "category",
                data: lpl.name,  //上面的代码是不是也有它呀,有就对啦
                axisLine: { lineStyle: {color: "rgba(255,255,255,.1)"}},
                axisLabel:  { textStyle: {color: "rgb(255,255,255)", fontSize: '16', }},
            },
       ],

所有的图表传输数据的操作方法都是一样的,先在【app.py】中创建路由,返回你需要的数据,再到【js.js】当中写Ajax和Echarts的代码

最后的胜利

所有的准备工作完成后,我们就只剩最后一步啦!

if __name__ == '__main__':
    app.run(debug=True)

右键,运行,点击下方的地址,可视化的页面就呈现在了你的眼前
图24


!!!

世界因代码而改变 Peace Out
!!!
基于springboot+echart新闻可视化分析平台源码+数据库 立即下载

相关推荐

基于ECharts智慧社区数据可视化大屏源码

基于ECharts智慧社区数据可视化大屏源码

10【源码】数据可视化:基于 Echarts +Java SpringBoot 实现的动态实时大屏范例 - 运动健康

数据可视化大屏的出现,掀起一番又一番的浪潮,众多企业主纷纷想要打造属于自己的“酷炫吊炸天”的霸道总裁大屏驾驶舱。 之前有小伙伴们建议我出一些视频课程来学习Echarts,这样可以更快上手,所以我就追星赶月的录制了《Echarts - 0基础入门课程》,希望对有需要的小伙伴有帮助。 传送门 YYDatav的数据可视化大屏《精彩案例汇总》(Java SpringBoot&Echarts源码)_YYDataV的博客-优快云博客 10【源码】数据可视化:基于Echarts+JavaSpringBo

记录项目交付的日常 9569

25【源码】数据可视化:基于 Echarts + Java SpringBoot 动态实时大屏范例 - 企业宣传.zip

更多Python&Echarts版的数据可视化大屏源码: https://yydatav.blog.youkuaiyun.com/article/details/120705616 更多Java SpringBoot&Echarts版的数据可视化大屏源码: https://yydatav.blog.youkuaiyun.com/article/details/123652970 更多《工厂订单出入库信息管理系统》案例源码: https://yydatav.blog.youkuaiyun.com/article/details/117841646 更多【工厂扫码打印&扫码装箱&错误追溯系统】完整案例 https://yydatav.blog.youkuaiyun.com/article/details/123096879

python学得好牢饭_英雄联盟LPL比赛数据可视化详细教程,可视化的魅力,你值得拥有!!!...

LPL比赛数据可视化完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识html+css+javascript+jQuery+python+requests+numpy+mysql+pymysql+json+ajax+flask+echarts在这个过程中,并不是那么顺利,遇到了很多坑,好在全部都已经解决在整个页面全部功能运行成功的那一刻,我感觉幸福极了下面我就带领大家实践一下,怎么从无...

weixin_39684228的博客 617

28【源码】数据可视化:基于 Echarts + Java SpringBoot 动态实时大屏范例 - 数据分析看板.zip

更多Python&Echarts版的数据可视化大屏源码: https://yydatav.blog.youkuaiyun.com/article/details/120705616 更多Java SpringBoot&Echarts版的数据可视化大屏源码: https://yydatav.blog.youkuaiyun.com/article/details/123652970 更多《工厂订单出入库信息管理系统》案例源码: https://yydatav.blog.youkuaiyun.com/article/details/117841646 更多【工厂扫码打印&扫码装箱&错误追溯系统】完整案例 https://yydatav.blog.youkuaiyun.com/article/details/123096879

Python爬取op.gg数据——英雄联盟版本强势英雄推荐

通过爬取韩服op.gg网站的数据,推荐当前版本各路强势英雄(韩服比国服先更新)。 目录通过爬取韩服op.gg网站的数据,推荐当前版本各路强势英雄(韩服比国服先更新)。一、op.gg源码及请求头分析二、源码分析三、数据提取四、整理数据并写入excel五、完整代码请多多支持,点赞! 一、op.gg源码及请求头分析 原创文章 16获赞 4访问量 4万+ 关注

BigDataView:Star 6k, 年前福利项目,超过100+套大数据可视化模板免费拿,还在等什么,抓紧收藏起来吧~~~

BigDataView项目为我们提供了一个非常丰富、实用且免费的大数据可视化模板资源库。无论你是数据分析师、企业管理者、政务工作者,还是其他需要进行数据可视化展示的人员,都可以从这个项目中受益。希望大家能够充分利用这些资源,让数据可视化在各个领域发挥更大的作用。

1483

DSP28335与Vofa+上位机通信实战:SCIb配置避坑指南(附完整代码)

本文提供DSP28335与Vofa+上位机通信的实战指南,重点解析SCIb模块配置的常见问题与解决方案。针对研旭开发板的硬件连接、波特率精确计算、FIFO高效使用以及FireWater协议封装进行了详细说明,并附有完整代码,帮助开发者快速实现实时数据可视化与波形分析,提升调试效率。

weixin_29172963的博客 150

从Rank分到职业表现:用Python数据分析拆解电竞选手实力评估

在竞技游戏和数据分析领域,匹配评级系统(MMR)是衡量玩家个人能力的基础量化工具,它通过算法将玩家的操作水平、英雄熟练度和单排Carry能力转化为直观的Rank分数。其技术原理在于通过胜负及表现数据动态调整分数,实现玩家间的公平匹配。这一机制的价值在于为职业战队提供了可量化的选材参考,尤其在评估选手个人操作上限和英雄池深度时至关重要。然而,Rank分主要反映的是个人在随机环境下的表现,而职业赛场更强调团队协同、战术执行和版本适应等系统能力,这导致了个人天梯分数与团队比赛表现之间常出现显著落差。通过Pytho

weixin_30448603的博客 331

新能源知识库(37)三代储能电芯介绍

2025年储能电芯三代技术演进概述 截至2025年6月,储能电芯已明确划分为三代: 第一代(280Ah):2019-2023年主流,能量密度180Wh/kg,循环寿命8000次,成本降至0.6元/Wh; 第二代(314Ah):2023年起主导,容量超1kWh,能量密度提升20%,循环寿命达15000次,系统成本降低15%; 第三代(500Ah+):2024年量产,能量密度突破440Wh/L(如宁德时代587Ah、阳光电源684Ah),20尺集装箱容量达6-9MWh,零部件成本降30%。 技术路线分化:卷绕派

竹君子之家 7910

WSL2+Docker实战:在Windows上部署MinerU 2.5.3,解锁媲美Demo的VLM PDF解析能力

本文详细介绍了如何在Windows系统上通过WSL2+Docker部署MinerU 2.5.3,实现媲美Demo的VLM PDF解析能力。文章涵盖环境准备、Docker部署实战技巧及高级使用技巧,特别针对PDF识别中的复杂排版、公式和图表处理提供了优化方案,帮助用户高效处理学术论文和技术文档。

weixin_29291573的博客 482

数据大屏+词云SpringBoot+Redis+Jieba(后端项目-源码分享)

一、项目描述 1 后端项目 1.1 项目简介 让我们先理解这个项目的原理 先整理好前端需要的各种图表的数据,将其SQL语句存入query_statement表 再定期执行这些SQL,执行结果放Redis 最后提供一个接口让前端取数据 项目使用SpringBoot-Redis-Jieba,为大屏项目提供数据接口(配套前端项目) 一个基于 SrpingBoot、Redis、Jieba 框架的 " 数据大屏项目 " 项目使用定时器,定期从数据库执行n个统计SQL,将统计结果存放Redis中,前端定时刷新请求

Mrkaizi的博客 3918

Linux 下 OpenClaw 安装全记录:从零到一的保姆级图文教程

本文主要介绍了Linux 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 步骤一 安装Node.js 2.2 步骤二:安装git 2.3 步骤三:安装并配置OpenClaw 2.4 步骤四:配置OpenClaw 2.5 步骤五:配置模型 2.6 步骤六:对话 3. 后续使用步骤 4. 报错解决方案 5. OpenClaw的卸载

weixin_43178406的博客 10万+

1【源码】数据可视化:基于 Echarts +Java SpringBoot 实现的动态实时大屏范例-互联网企业数据分析

目录 精彩案例汇总 效果展示 1、首先看动态效果图 2、再看实时分片数据图 一、需求确认 1、确定产品上线部署的屏幕LED分辨率 2、功能模块 3、部署方式 二、整体架构设计 三、编码实现 (基于篇幅及可读性考虑,此处展示部分关键代码) 1、前端html代码 2、前端js代码 3、后端Java代码 四、上线运行 1、效果 2、项目 ReadMe 说明 五、源码下载 精彩案例汇总 近年来,数据可视化大屏的出现,掀起一番又一番的浪潮,众多企业主纷纷想要打造属于自己的..

记录项目交付的日常 1万+

第12步 支持向量机(SVM)

搭建SVM

Jet4505的博客 1051

微信支付PHP集成指南

完整实现建议参考微信支付官方文档,包含更多支付场景(H5支付、Native支付等)和安全性处理细节。微信支付在PHP中的集成主要涉及服务端接口的调用和支付流程的实现。

bqq506615054的专栏 158

2021数据大屏-词云-源码分享(VUE+iDataV+Echarts,后端SpringBoot)

数据大屏-实现方案 现公司做政务项目,两周左右搞了个大屏项目。在此分享一下前、后端代码,看着下面博客快速上手,大家记得收藏关注,如果能帮到大家那万分荣幸。 废话不多说直接上效果图: 下载地址及博客: 前端 代码:前端代码下载(V1.0)、前端代码下载(V2.0) 博客:数据大屏项目Vue+DataV+Echarts 后端 后端:后端代码下载 博客:数据大屏+词云SpringBoot+Redis+Jieba 预览(V1.0) 预览(V2.0) 一、项目描述 1 前端项目 1.1 项目简介 一个基

Mrkaizi的博客 2023

AUTOSAR从入门到精通-汽车电子电气架构(EEA)

EEA(Electrical/Electronic Architecture),电子电气架构,是首先由德尔福公司提出的,集合汽车的电子电气系统原理设计、中央电器盒的设计、连接器的设计、电子电气分配系统等设计为一体的整车电子电气解决方案的概念。通过EEA的设计,可将动力总成、驱动信息、娱乐信息等车身信息转化为实际的电源分配的物理布局、信号网络、数据网络、诊断、容错、能量管理等的电子电气解决方案。

getusushu的博客 858

springboot+echarts+mysql制作数据可视化大屏(滑动大屏)

springboot+echarts+mysql制作数据可视化大屏(滑动大屏)

qq_55906442的博客 4043

【时时三省】tessy 集成测试:小白入门指导手册

有图有文字详细介绍 tessy 集成测试 操作方法。

时时三省的博客 2516

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

基于 SpringBoot + Echarts 实现的动态实时大屏

来源:https://yydatav.blog.youkuaiyun.com/?type=blog效果图展示一、确定需求方案1、确定产品上线部署的屏幕LED分辨率本案例基于16:9 屏宽比,F11全屏显示。2、部署方式基于免安装可执行程序:支持Windows、Linux、Mac等各种操作系统;将程序复制到服务器上即可,无需其它环境依赖;观看方式:既可在服务器上直接观看程序...

469

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

4【源码】数据可视化:基于 Echarts +Java SpringBoot 实现的动态实时大屏范例-厦门市某医院

数据可视化大屏的出现,掀起一番又一番的浪潮,众多企业主纷纷想要打造属于自己的“酷炫吊炸天”的霸道总裁大屏驾驶舱。 之前有小伙伴们建议我出一些视频课程来学习Echarts,这样可以更快上手,所以我就追星赶月的录制了《Echarts - 0基础入门课程》,希望对有需要的小伙伴有帮助。 传送门 YYDatav的数据可视化大屏《精彩案例汇总》(Java SpringBoot&Echarts源码)_YYDataV的博客-优快云博客 5【源码】数据可视化:基于Echarts+JavaSpringBoo

记录项目交付的日常 3407

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

springboot+mybatis+echarts +mysql制作数据可视化大屏

成果展示:1)可以使用自己的MySQL数据库;2)使用我提供的数据。(免费下载)gmall_report用于可视化的SQL文件-MySQL文档类资源-优快云下载MySQLIDEAjdk1.8Maven创建springboot项目有二种方式:1)在IDEA中创建2)在官网上创建我喜欢在官网创建官网地址(记得收藏):https://start.spring.io/​ 注:1)注意红色框框的地方,选择你想要的版本和与你的计算机相应的配置;2)在1.处点击添加相关依赖;3)在2.处点击生成初始代码并下载。下面给出

qq_55906442的博客 1万+

Vue毕业设计——基于Vue+SpringBoot+ECharts的学校仪器设备管理系统设计与实现(毕业论文+程序源码)——设备管理系统

学校实验室是学校开展教学活动、培养学生操作能力的重要场所,而学校的仪器设备更是实验室不可或缺的重要组成部分。目前在学校的仪器设备的管理方面基本采用人工的方式进行管理,仪器的申报、登记、使用、保存等各个环节都需要付出一定的人力、物力和财力。而且这种人工操作的管理方式,不仅会造成大量人力的浪费,而且在仪器设备信息的处理速度、仪器库存量的统计信息、仪器使用及预约管理方面也存在着许多问题,不仅会影响到正常教学实验的开展,而且会由于仪器设备的管理问题导致仪器的丢失和破坏以及设备数量购买不得当的问题。

m0_66238867的博客 1680

springboot+echarts +mysql制作数据可视化大屏(六图)

springboot+echarts +mysql制作数据可视化大屏(六图)

qq_55906442的博客 3187
上一篇: [Music Download]当我用Python去爬取网易云音乐的时候,我TM直接裂开!!!
下一篇: Python反反爬之JS混淆---源码乱码(详细教程)
Java_S12138
博客等级 码龄7年 42粉丝 5原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值