当前位置: 首页 > news >正文

(5)所有角色数据分析页面的构建-5

        所有角色数据分析页面,包括一个时间轴柱状图、六个散点图、六个柱状图(每个属性角色的生命值/防御力/攻击力的max与min的对比)。

"""绘图"""
from pyecharts.charts import Timeline
from find_type import FindType
import pandas as pd
from pyecharts.charts import Bar, Page
from pyecharts import options as opts
from pyecharts.charts import Scatter# 全部角色
def x():tl = Timeline()for i in ["火", "水", "冰", "风", "雷", "岩"]:role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)role_things = role_things.fillna(axis=0, method="ffill")things_list = role_things.groupby("属性").groupsprint(role_things.loc[things_list[i]]["角色"])bar = (Bar().add_xaxis(list(role_things.loc[things_list[i]]["角色"])).add_yaxis("生命值", list(role_things.loc[things_list[i]]["生命值"])).add_yaxis("防御力", list(role_things.loc[things_list[i]]["防御力"])).add_yaxis("攻击力", list(role_things.loc[things_list[i]]["攻击力"])).set_global_opts(title_opts=opts.TitleOpts()))tl.add(bar, f"{i}属性")return tl# 火
def y():return_things = FindType("火").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)list_source = [["produce", "max", "min"]]print(df)list_source = list_source + [["生命值"] + list(df[df["生命值"] == df["生命值"].max()]["生命值"]) + list(df[df["生命值"] == df["生命值"].max()]["生命值"])] + [["防御力"] + list(df[df["防御力"] == df["防御力"].max()]["防御力"]) + list(df[df["防御力"] == df["防御力"].max()]["防御力"])] + [["攻击力"] + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"]) + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"])]c = (Bar().add_dataset(source=list_source).add_yaxis(series_name="max", y_axis=[]).add_yaxis(series_name="min", y_axis=[]).set_global_opts(title_opts=opts.TitleOpts(title="火属性"),xaxis_opts=opts.AxisOpts(type_="category"),))return c# 水
def z():return_things = FindType("水").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)list_source = [["produce", "max", "min"]]print(df)list_source = list_source + [["生命值"] + list(df[df["生命值"] == df["生命值"].max()]["生命值"]) + list(df[df["生命值"] == df["生命值"].max()]["生命值"])] + [["防御力"] + list(df[df["防御力"] == df["防御力"].max()]["防御力"]) + list(df[df["防御力"] == df["防御力"].max()]["防御力"])] + [["攻击力"] + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"]) + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"])]c = (Bar().add_dataset(source=list_source).add_yaxis(series_name="max", y_axis=[]).add_yaxis(series_name="min", y_axis=[]).set_global_opts(title_opts=opts.TitleOpts(title="水属性"),xaxis_opts=opts.AxisOpts(type_="category"),))return c# 冰
def a():return_things = FindType("冰").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)list_source = [["produce", "max", "min"]]print(df)list_source = list_source + [["生命值"] + list(df[df["生命值"] == df["生命值"].max()]["生命值"]) + list(df[df["生命值"] == df["生命值"].max()]["生命值"])] + [["防御力"] + list(df[df["防御力"] == df["防御力"].max()]["防御力"]) + list(df[df["防御力"] == df["防御力"].max()]["防御力"])] + [["攻击力"] + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"]) + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"])]c = (Bar().add_dataset(source=list_source).add_yaxis(series_name="max", y_axis=[]).add_yaxis(series_name="min", y_axis=[]).set_global_opts(title_opts=opts.TitleOpts(title="冰属性"),xaxis_opts=opts.AxisOpts(type_="category"),))return c# 风
def b():return_things = FindType("风").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)list_source = [["produce", "max", "min"]]print(df)list_source = list_source + [["生命值"] + list(df[df["生命值"] == df["生命值"].max()]["生命值"]) + list(df[df["生命值"] == df["生命值"].max()]["生命值"])] + [["防御力"] + list(df[df["防御力"] == df["防御力"].max()]["防御力"]) + list(df[df["防御力"] == df["防御力"].max()]["防御力"])] + [["攻击力"] + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"]) + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"])]c = (Bar().add_dataset(source=list_source).add_yaxis(series_name="max", y_axis=[]).add_yaxis(series_name="min", y_axis=[]).set_global_opts(title_opts=opts.TitleOpts(title="风属性"),xaxis_opts=opts.AxisOpts(type_="category"),))return c# 雷
def c():return_things = FindType("雷").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)list_source = [["produce", "max", "min"]]print(df)list_source = list_source + [["生命值"] + list(df[df["生命值"] == df["生命值"].max()]["生命值"]) + list(df[df["生命值"] == df["生命值"].max()]["生命值"])] + [["防御力"] + list(df[df["防御力"] == df["防御力"].max()]["防御力"]) + list(df[df["防御力"] == df["防御力"].max()]["防御力"])] + [["攻击力"] + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"]) + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"])]c = (Bar().add_dataset(source=list_source).add_yaxis(series_name="max", y_axis=[]).add_yaxis(series_name="min", y_axis=[]).set_global_opts(title_opts=opts.TitleOpts(title="雷属性"),xaxis_opts=opts.AxisOpts(type_="category"),))return c# 岩
def d():return_things = FindType("岩").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)list_source = [["produce", "max", "min"]]print(df)list_source = list_source + [["生命值"] + list(df[df["生命值"] == df["生命值"].max()]["生命值"]) + list(df[df["生命值"] == df["生命值"].max()]["生命值"])] + [["防御力"] + list(df[df["防御力"] == df["防御力"].max()]["防御力"]) + list(df[df["防御力"] == df["防御力"].max()]["防御力"])] + [["攻击力"] + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"]) + list(df[df["攻击力"] == df["攻击力"].max()]["攻击力"])]c = (Bar().add_dataset(source=list_source).add_yaxis(series_name="max", y_axis=[]).add_yaxis(series_name="min", y_axis=[]).set_global_opts(title_opts=opts.TitleOpts(title="岩属性"),xaxis_opts=opts.AxisOpts(type_="category"),))return cdef e():role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)role_things = role_things.fillna(axis=0, method="ffill")print(role_things)return_things = FindType("岩").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)Name = df["角色"]Hp = df["生命值"]Def = df["防御力"]Atk = df["攻击力"]c = (Scatter().add_xaxis(list(Name)).add_yaxis("生命值", list(Hp)).add_yaxis("防御力", list(Def)).add_yaxis("攻击力", list(Atk)).set_global_opts(title_opts=opts.TitleOpts(title="岩属性"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate": 45})))return cdef f():role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)role_things = role_things.fillna(axis=0, method="ffill")print(role_things)return_things = FindType("火").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)Name = df["角色"]Hp = df["生命值"]Def = df["防御力"]Atk = df["攻击力"]c = (Scatter().add_xaxis(list(Name)).add_yaxis("生命值", list(Hp)).add_yaxis("防御力", list(Def)).add_yaxis("攻击力", list(Atk)).set_global_opts(title_opts=opts.TitleOpts(title="火属性"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate": 45})))return cdef g():role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)role_things = role_things.fillna(axis=0, method="ffill")print(role_things)return_things = FindType("水").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)Name = df["角色"]Hp = df["生命值"]Def = df["防御力"]Atk = df["攻击力"]c = (Scatter().add_xaxis(list(Name)).add_yaxis("生命值", list(Hp)).add_yaxis("防御力", list(Def)).add_yaxis("攻击力", list(Atk)).set_global_opts(title_opts=opts.TitleOpts(title="水属性"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate": 45})))return cdef h():role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)role_things = role_things.fillna(axis=0, method="ffill")print(role_things)return_things = FindType("冰").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)Name = df["角色"]Hp = df["生命值"]Def = df["防御力"]Atk = df["攻击力"]c = (Scatter().add_xaxis(list(Name)).add_yaxis("生命值", list(Hp)).add_yaxis("防御力", list(Def)).add_yaxis("攻击力", list(Atk)).set_global_opts(title_opts=opts.TitleOpts(title="冰属性"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate": 45})))return cdef I():role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)role_things = role_things.fillna(axis=0, method="ffill")print(role_things)return_things = FindType("风").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)Name = df["角色"]Hp = df["生命值"]Def = df["防御力"]Atk = df["攻击力"]c = (Scatter().add_xaxis(list(Name)).add_yaxis("生命值", list(Hp)).add_yaxis("防御力", list(Def)).add_yaxis("攻击力", list(Atk)).set_global_opts(title_opts=opts.TitleOpts(title="风属性"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate": 45})))return cdef K():role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)role_things = role_things.fillna(axis=0, method="ffill")print(role_things)return_things = FindType("雷").find_type()df = return_things.drop(["属性", "突破加成"], axis=1)Name = df["角色"]Hp = df["生命值"]Def = df["防御力"]Atk = df["攻击力"]c = (Scatter().add_xaxis(list(Name)).add_yaxis("生命值", list(Hp)).add_yaxis("防御力", list(Def)).add_yaxis("攻击力", list(Atk)).set_global_opts(title_opts=opts.TitleOpts(title="雷属性"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate": 45})))return cpage = Page(layout=Page.DraggablePageLayout)
page.add(a(), b(), c(), d(), x(), y(), z(), e(), f(), g(), h(), I(), K())
# page.render(".html")
# Page.save_resize_html(".html", cfg_file="chaonfig.json", dest="./templates/无.html")

运行结果:

 

相关文章:

(5)所有角色数据分析页面的构建-5

所有角色数据分析页面,包括一个时间轴柱状图、六个散点图、六个柱状图(每个属性角色的生命值/防御力/攻击力的max与min的对比)。 """绘图""" from pyecharts.charts import Timeline from find_type import FindType import pandas …...

专利进阶(三):专利撰写资料汇总

文章目录 一、前言二、资料汇总三、拓展阅读 一、前言 在专利撰写前,需要首先了解专利撰写所需遵守的基本规则。可以借助的撰写工具是什么。文献检索在哪里?注意事项是什么?本篇博文会就以上问题进行逐一解答。 专利撰写基本原则&#xff1…...

maven编译始终提示无效的目标发行版的解决方法

摘自个人印象笔记2021-05-07:https://app.yinxiang.com/fx/55e1d5f4-aeea-446a-a768-0f1a48195f5b(图显示不完整可查看原笔记内容)1:确保IDE中的编译版本正确 在idea中,主要看项目属性中和setting的java compiler中对应的jdk版本是否正确&…...

系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...

界面控件DevExpress WPF Chart组件——拥有超快的数据可视化库!

DevExpress WPF Chart组件拥有超大的可视化数据集,并提供交互式仪表板与高性能WPF图表库。DevExpress Charts提供了全面的2D / 3D图形集合,包括数十个UI定制和数据分析/数据挖掘选项。 PS:DevExpress WPF拥有120个控件和库,将帮助…...

【网络安全】等保测评安全物理环境

【网络安全】等保测评&安全物理环境 前言第1章 安全物理环境1.1 物理位置选择1.2 物理访问控制(高风险项)1.3 防盗窃1.4 防雷击1.5 防火1.6 防水防潮1.7 防静电1.8 温湿度控制1.9 电力供应1.10 电磁防护 前言 等级保护对象是由计算机或其他信息终端…...

Intellij IDEA 导入 eclipse web 项目详细操作

Eclipse当中的web项目都会有这两个文件。但是idea当中应该是没有的,所以导入会出现兼容问题。但是本篇文章会教大家如何导入,并且导入过后还能使用tomcat运行。文章尽可能以图片的形式进行演示。我的idea使用的版本是2022.3.3版本。当然按正常来说版本之…...

安卓java A应用切换到B应用,来回切换不执行OnCreate

需求:安卓java如何做到A应用切换到B应用,如果B应用没启动就启动,如果B应用已经启动就仅仅切换到B应用。B应用再切换回A应用,不要重复执行OnCreate! 在 A 应用中的: 在 A 应用中,如果你希望在切换回 B 应用…...

【Linux】批量恢复文件权限

批量恢复文件权限 Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的 getfacl 命令来拷贝和还原系统权限,若是其他系统目录被误…...

数据可视化(八)堆叠图,双y轴,热力图

1.双y轴绘制 #双Y轴可视化数据分析图表 #add_subplot() dfpd.read_excel(mrbook.xlsx) x[i for i in range(1,7)] y1df[销量] y2df[rate] #用来正常显示负号 plt.rcParams[axes.unicode_minus]False figplt.figure() ax1fig.add_subplot(1,1,1)#一行一列,第一个区域…...

前台自动化测试:基于敏捷测试驱动开发(TDD)的自动化测试原理

一、自动化测试概述 自动化测试主要应用到查询结果的自动化比较,把借助自动化把相同的数据库数据的相同查询条件查询到的结果同理想的数据进行自动化比较或者同已经保障的数据进行不同版本的自动化比较,减轻人为的重复验证测试。多用户并发操作需要自动…...

基于SLAM的规划算法仿真复现|SLAM|智能规划

图片来自百度百科 前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总https://blog.csdn.n…...

sqlite3多线程操作问题

在项目中使用sqlite3,有时会报database is locked 两种方式 1、多线程读,多线程写,只使用共同一个数据库连接,即使用同一个SQLiteHelper连接,调用sqlite3_busy_timeout 2、多线程读,单线程写,每…...

ACCESS数据库增删改查

[添加COM组件] A: Microsoft ADO Ext. 2.8 for DDL and Security B: Microsoft ActiveX Data Objects 2.8 Library [添加头文件]using System.Data.OleDb; using System.Data; using ADOX; using System.IO; using System; using System.Collections.Generic; using System.L…...

动捕系统mockup_optitrack替换为VRPN传递信息

motive:启动→载入已有→layout选择capture→view选择data streming→复选marker右键create刚体→rename刚体→修改local interface为本机ip→勾选vrpn ROS端:roslaunch vrpn_client_ros vrpn_efy.launch 记得修改server地址为motiveip地址 关掉motive…...

【服务平台】Rancher运行和管理Docker和Kubernetes,提供管理生产中的容器所需的整个软件堆栈

Rancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。  完整软件堆栈 Rancher是供采用容器的团…...

二叉树的完全性检验

给定一个二叉树的 root ,确定它是否是一个 完全二叉树 。 在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的,并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1 到 2h 节点之间的最后一级 h 。 示…...

激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)

激活函数总结(六):ReLU系列激活函数补充 1 引言2 激活函数2.1 RReLU激活函数2.2 CELU激活函数2.3 ReLU6 激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SEL…...

tp5中的事务处理

使用事务首先要数据库支持事务; 如下MySQL数据库user表开启事务支持,即设计表->引擎设置为InnoDB->保存 事务处理 1. 数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可; 2. 事务处理,需要执行多个 SQ…...

论文总结《Towards Evaluating the Robustness of Neural Networks(CW)》

原文链接 C&W 这篇论文更像是在讲一个优化问题,后面讲述如何针对生成对抗样本的不可解问题近似为一个可解的问题,很有启发。本文后面将总结论文各个部分的内容。 Motivation 文章提出了一个通用的设计生成对抗样本的方法,根据该论文提…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...