(3)原神角色数据分析-3

绘图类

        在名为“WRITEPHOT.py”的文件中,定义如下绘图方式,则在主页面(app.py)文件中,可通过如下方式调用:

from WRITEPHOTO import WriteScatter,WriteFunnel,WriteBarData,WritePie,WriteLineBar

代码如下:

"""绘图"""
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.charts import Funnel
from pyecharts.faker import Faker
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.faker import Faker
import numpy as np
import pandas as pd# 散点图
class WriteScatter:Name = NoneHp = NoneDef = NoneAtk = Nonedef __init__(self, Name, Hp, Def, Atk):self.Name = Nameself.Hp = Hpself.Def = Defself.Atk = Atkdef write_scatter(self):from pyecharts.faker import Fakerc = (Scatter().add_xaxis(list(self.Name)).add_yaxis("生命值", list(self.Hp)).add_yaxis("防御力", list(self.Def)).add_yaxis("攻击力", list(self.Atk)).set_global_opts(title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate": 45})).render("./templates/筛选结果-自动生成.html"))# 漏斗图
class WriteFunnel:# 角色名称role_name = None# 分类依据type_things = Nonedef __init__(self, role_name, type_things):self.role_name = role_nameself.type_things = type_things# zip()函数# >>> a = ['a', 'b', 'c', 'd']# >>> b = ['1', '2', '3', '4']# >>> list(zip(a, b))# [('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]def write_funnel(self):c = (Funnel().add(self.type_things,[list(z) for z in zip(self.role_name, self.type_things)],sort_="ascending",label_opts=opts.LabelOpts(position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="Funnel-Sort(ascending)")).render("./templates/排序结果-自动生成.html"))# 数据集
class WriteBarData:def __init__(self, df):self.df = dfdef write_bar_data(self):list_source = [["produce", "生命值", "防御力", "攻击力"]]for x in range(0, len(self.df["角色"])):list_source.append([self.df.iloc[x]["角色"],int(self.df.iloc[x]["生命值"]),int(self.df.iloc[x]["防御力"]),int(self.df.iloc[x]["攻击力"])])print(list_source)c = (Bar().add_dataset(source=list_source).add_yaxis(series_name="生命值", y_axis=[]).add_yaxis(series_name="防御力", y_axis=[]).add_yaxis(series_name="攻击力", y_axis=[]).set_global_opts(title_opts=opts.TitleOpts(title="标题"),xaxis_opts=opts.AxisOpts(type_="category"),).render("./templates/数据集-自动生成.html"))# 饼图
class WritePie:def __init__(self, three_things, role_type, role_add):self.role_things = three_thingsself.role_type = role_typeself.role_add = role_adddef write_pie(self):print()print(self.role_things)c = (Pie().add("",# 这块可以是Series和Series,但不能是Series和list,因为两者无法匹配[list(z) for z in zip(["生命值", "防御力", "攻击力"],[int(self.role_things[0]), int(self.role_things[1]), int(self.role_things[2])])],radius=["40%", "75%"],).set_global_opts(title_opts=opts.TitleOpts(title=f"{self.role_type}属性角色/{self.role_add}"),legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).render("./templates/单个角色数据-自动生成.html"))# 时间柱状图
class WriteLineBar:def __init__(self):self.role_name = ["火", "水", "冰", "风", "雷", "岩"]def write_lin_bar(self):tl = Timeline()for i in self.role_name: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}属性")tl.render("./templates/时间柱状图所有角色-自动生成.html")

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

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

相关文章

【前端】CSS垂直居中的7种方法

文章目录 line-height绝对定位margin:autoflex绝对定位margin:负值定位transformvertical-align:middledisplay:table-cell思维导图 前文:【前端】CSS水平居中的6种方法_karshey的博客-CSDN博客 有很多相似的部分。 line-height 适用于单行的行内元素设置line-he…

N皇后算法的思路是什么?

N皇后问题是经典的回溯算法问题,其目标是在一个NxN的棋盘上放置N个皇后,使得它们彼此之间不能互相攻击,即任意两个皇后都不在同一行、同一列或同一斜线上。 算法的思路如下: 使用递归函数来解决问题。递归函数的参数通常包括当前…

模仿火星科技 基于cesium+角度测量+高度测量+可编辑

1. 创建提示窗: 启动Cesium应用,地图场景将打开,欢迎您进入编辑模式。 在屏幕的一角,一个友好的提示窗将呈现,随着您的操作,它会为您提供有用的信息和指导。 2. 绘制面积: 轻轻点击鼠标左键&a…

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例 简介系统登录日志类LoginLogEntity .java 一、环绕处理方式1、自定义注解类LoginLogAop.class2、切面处理类LogoutLogAspect.java 二、前置处理方式:1、自定义注解类Log…

MySQL之 show profile 相关总结

MySQL之 show profile 相关总结 MySQL官网show profile介绍:https://dev.mysql.com/doc/refman/8.0/en/show-profile.html 1. 简介 show profile 和 show profiles 命令用于展示SQL语句的资源使用情况,包括CPU的使用,CPU上下文切换&#xf…

【实战】 九、深入React 状态管理与Redux机制(五) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

Docker 数据管理

文章目录 前言1、Dcoker 文件体系2、volume挂载案例2.1、挂载运行一个容器实例方法1方法2 3、volumes-from 案例4、备份/恢复数据卷5、删除数据卷 前言 为什么要有数据管理? 因为: Docker 是不提供持久化的 ,容器是不稳定的;一个…

mac ssh连接另一台window虚拟机vm

vmware配置端口映射 编辑(E) > 虚拟网络编辑器(N)... > NAT设置(S)... window防火墙,入站规则添加5555端口 控制面板 > 系统和安全 > Windows 防火墙>高级设置>入站规则>新建规则... tips windows查看端口命令:netstat -ano | f…

【从零学习python 】14.Python字符串常见操作(二)

文章目录 count替换内容分隔splitrsplitsplitlinespartitionrpartition 修改大小写capitalizetitlelowerupper 空格处理1. ljust2. rjust3. center4. lstrip5. rstrip6. strip 字符串拼接字符串运算符进阶案例 count 返回 str 在 start 和 end 之间在 mystr 里面出现的次数。 …

EthereumArbitrumOptimism节点搭建

Ethereum节点搭建 Ethereum节点搭建可基于源码或基于docker。这里介绍基于docker的方式搭建。 拉取镜像 docker pull ethereum/client-go 建议将镜像源配置为阿里云的镜像源 启动容器 docker run -itd -p 8545:8545 -p 30303:30303 --name eth -v /data/eth:/root/.ethere…

java-IDEA MAVEN查看依赖树,解决jar包重复和冲突

如果这里面的依赖关系有红线,就说明有包冲突,一般都是版本不一致,可以在idea里下一个插件Maven Helper,点击install并重启IDEA 打开pom.xml文件,在下方会出现Dependency Analyzer,选择它会出现重复依赖列表,选择对应的依赖,右键红…

BI技巧丨利用Index计算半累计

在实际的业务场景中,特别是财务模块和库存管理模块,经常需要我们针对每个月的期初期末进行相关指标计算,这也是我们之前曾经提到的Calculate基础应用——半累计计算。 现在我们也可以通过微软新推出的Index开窗函数来解决这一问题。 INDEX函…

Mapbox加载天地图CGCS2000矢量瓦片地图

1.背景 最近在做天地图的项目,要基于MapBox添加CGCS2000矢量切片数据,但是 Mapbox 只支持web 墨卡托(3857)坐标系的数据。Github有专业用户修改了mapbox-gl的相关代码,支持CGCS2000的切片数据加载,并且修改…

dji uav建图导航系列(一)建图

文章目录 1、uav + rplidir雷达1.2、思岚激光雷达1.3、dji uav的launch文件2、cartographer激光建图2.1、启动文件2.2、config修改2.3、建图过程3、融合odom+laser建图1、uav + rplidir雷达 思岚激光雷达frame为base_laser_link, 无人机frame为base_footprint。 文件uav_lid…

【Python】同步、异步、堵塞、非堵塞、回调

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、Python中的同步异步二、Python中的堵塞非堵塞三、Python中的回调四、异步编程 一、Python中的同步异步 在 Python 中,同步和…

【OS】操作系统中,页框/页帧见解

文章目录 页框大小的取决因素页框大小的查询不同大小的页框,适用于哪些场景? 页框大小的取决因素 页框(Page Frame)是指操作系统中用于存储页面的物理内存块,其大小通常由操作系统的设计和硬件架构决定。在现代计算机…

手动实现 Spring 底层机制 实现任务阶段一编写自己 Spring 容器-准备篇【2】

😀前言 手动实现 Spring 底层机制的第2篇 实现了任务阶段一编写自己 Spring 容器-准备篇【2】 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的…

docker 删除镜像文件

docker 容器里面太多镜像,D盘满了 四 查看和移除镜像 1 查看镜像 docker images 2 移除镜像命令 docker rmi 镜像名称 # 只输入前四位即可 五 实际有效操作 清除所有不使用的资源 docker system prune 这个命令将会删除所有不使用的镜像、容器和数据卷等资…

js 动态设置transformOrigin

transformOrigin属性用于指定元素变换的原点。 // 获取要设置的元素 const element document.getElementById(your-element-id);// 设置transformOrigin属性 element.style.transformOrigin 50% 50%; // 以元素中心为原点// 或者使用变量来设置 const x 0; // x坐标 const …

后端进阶之路——深入理解Spring Security配置(二)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…