import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#1.加载并查看数据基本信息
def read_dataset(file_root):dataframe=pd.read_csv(file_root)print("数据的基本信息:")print(dataframe.info())print("数据集有%i行,%i列"%(dataframe.shape[0],dataframe.shape[1]))print("数据预览:")print(dataframe.head())return dataframe
#2.处理缺失数据
def processing_missing_data(dataframe):if (dataframe.isnull().values.any()):dataframe.fillna(0.)#dataframe.dropna()return dataframe
#3.可视化数据
def visualize_data(dataframe,save_fig=True):fig=plt.figure()ax1=fig.add_subplot(2,2,1)ax2=fig.add_subplot(2,2,2)ax3=fig.add_subplot(2,2,3)ax4=fig.add_subplot(2,2,4)#解决matplotlib显示中文的问题plt.rcParams["font.sans-serif"]=["SimHei"]#指定默认字体plt.rcParams["axes.unicode_minus"]=False#解决保存图像是负号显示为方块问题fig.suptitle("战队属性")ax1.scatter(dataframe["LeagueIndex"],dataframe["Age"])ax1.set_xlabel("战队")ax1.set_ylabel("年龄")ax2.scatter(dataframe["LeagueIndex"],dataframe["HoursPerWeek"])ax2.set_xlabel("战队")ax2.set_ylabel("每周游戏时间")ax3.scatter(dataframe["LeagueIndex"], dataframe["APM"])ax3.set_xlabel("战队")ax3.set_ylabel("APM")ax4.scatter(dataframe["LeagueIndex"], dataframe["WorkersMade"])ax4.set_xlabel("战队")ax4.set_ylabel("单位时间建造数")if save_fig:plt.savefig("H:/pythonfigure/league.png")plt.show()
#4.可视化数据统计
def visualize_league_data(dataframe,attribution,save_fig=True):min_data=[]max_data=[]mean_data=[]for i in range(1,9):filter_data=dataframe.ix[dataframe["LeagueIndex"]==i,attribution]min_data.append(filter_data.min())max_data.append(filter_data.max())mean_data.append(filter_data.mean())league_series=pd.Series(range(1,9),name="LeagueIndex")min_series=pd.Series(min_data,name="min")max_series=pd.Series(max_data,name="max")mean_series=pd.Series(mean_data,name="mean")dataframe_rst=pd.concat([league_series,min_series,max_series,mean_series],axis=1)if save_fig:dataframe_rst.to_csv("H:/pythonfigure/min_max_mean.csv")#统计值可视化fig=plt.figure()ax1=fig.add_subplot(1,1,1)#解决matplotlib显示中文问题plt.rcParams["font.sans-serif"]=["SimHei"]#指定默认字体plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题ax1.plot(dataframe_rst["LeagueIndex"],dataframe_rst["min"],color='b')ax1.plot(dataframe_rst["LeagueIndex"],dataframe_rst["max"],color='g')ax1.plot(dataframe_rst["LeagueIndex"],dataframe_rst["mean"],color="r")ax1.set_xlabel("战队")ax1.set_ylabel("attribution")ax1.legend()if save_fig:plt.savefig("H:/pythonfigure/min_max_mean.png")plt.show()#加载数据
dataframe=read_dataset("H:/pythonfigure/starcraft.csv")
#处理缺失数据
df_data=processing_missing_data(dataframe)
#可视化数据
visualize_data(df_data,save_fig=True)
#可视化统计指标
visualize_league_data(df_data,"Age",save_fig=True)
visualize_league_data(df_data,"HoursPerWeek",save_fig=True)
visualize_league_data(df_data,"APM",save_fig=True)
visualize_league_data(df_data,"WorkersMade",save_fig=True)

星际争霸游戏战队案例分析相关推荐

  1. 多智能体强化学习_基于多智能体强化学习主宰星际争霸游戏

    大家好,今天我们来介绍基于多智能体强化学习主宰星际争霸游戏这篇论文 Grandmaster level in StarCraft II using multi-agent reinforcement ...

  2. php 星际争霸 面向对象,php面向对象基础详解【星际争霸游戏案例】

    本文实例讲述了php面向对象基础.分享给大家供大家参考,具体如下: 前言 面向对象博大精深,对于从未接触过得的人,会觉得一头雾水. 学习的资料很多,但大多比较抽象,所以我用经典的游戏-星际争霸来讨论P ...

  3. Java项目:星际争霸游戏(java+swing+awt界面编程+IO输入输出流+socket+udp网络通信)

    源码获取:博客首页 "资源" 里下载! 功能简介: 星际争霸游戏项目,该项目实现了单人模式和多人合作模式,可记录游戏进度,新建游戏,载入历史记录等功能,多人模式下可以创建一个区,然 ...

  4. java手机游戏星际争霸_java Swing实现的星际争霸游戏源码

    今天给大家介绍一下由Java swing实现的星际争霸游戏项目,该项目实现了单人模式和多人合作模式,可记录游戏进度,新建游戏,载入历史记录等功能,多人模式下可以创建一个区,然后邀请玩家加入一起玩,主要 ...

  5. 如何用python语言控制星际争霸游戏

    StarCraft II API是由暴雪开发的一个接口,允许研究人员和开发人员通过Python程序访问游戏状态并控制单元.这个API是专为人工智能研究而设计的,不适用于玩游戏. 安装和使用StarCr ...

  6. php迭代器实例,php设计模式之迭代器模式实例分析【星际争霸游戏案例】

    本文实例讲述了php设计模式之迭代器模式.分享给大家供大家参考,具体如下: 星际的任务关一般会有这样的设定:一开始电脑的农民不采矿,如果战斗打响,或者玩家造出第一个兵,电脑的农民开始采矿. 我们自然会 ...

  7. 星际争霸php,php设计模式之建造器模式分析【星际争霸游戏案例】

    本文实例讲述了php设计模式之建造器模式.分享给大家供大家参考,具体如下: 星际里面有不少的任务关,也可以自己编辑地图,画面上有各种地形,建筑和部队. 这存在一个问题,初始化画面的流程很乱. 待解决的 ...

  8. 星际争霸php,php设计模式之原型模式分析【星际争霸游戏案例】

    本文实例讲述了php设计模式之原型模式.分享给大家供大家参考,具体如下: 我们一般用new来新增对象,不过很多时候新增一个对象需要一些工作.而星际里面往往会新增某些类的大量的对象,比如新增很多机枪兵和 ...

  9. 星际争霸游戏中的操作心得

    出于对星际的热爱,我在网上找了很多次有关微操技巧的文章.但是让我很失望的是,除了一些关于基本的龙骑舞,克隆等基本的现在大家都已经熟悉的操作介绍之外,几乎找不到一些更详细的文章(不过有几篇关于追尾,还有 ...

最新文章

  1. android java服务器文件传输_java – 使用FTPS将文件从android传输到服务器
  2. linux 访客日志ip,shell统计ip访问情况,要求分析访问日志分析。
  3. 手写自己的MyBatis框架-V2.0参数处理
  4. Python3OS文件/方法
  5. 开发人员眼中最好的代码编辑器是谁?
  6. bat java 启动脚本_bat批处理启动java程序通用脚本
  7. 群聊金山云与英特尔的“AI as a Service”,你都get到了什么?
  8. dubbo官方文档_狂神说SpringBoot17:Dubbo和Zookeeper集成
  9. 2001.dumpbin工具使用
  10. Undefined function 'conv2' for input arguments of type 'double' and attributes 'full 3d complex'.
  11. 为什么其他计算机连接需要密码是什么东西,连接其他电脑需要密码怎么处理
  12. Vue.js学习系列(八)---使用路由搭建单页应用(一)
  13. 罗技鼠标驱动怎么设置宏?
  14. 阿里矢量图库icomoon的icon引用方法
  15. 龙果学院从无到有构建亿级微服务秒杀系统
  16. xbox微软服务器崩溃了,微软的Xbox游戏条因0x803F8001错误而崩溃
  17. win10 myeclipse2017安装教程(附安装包)
  18. python循环速度提高_提高python中for循环的速度
  19. ubuntu20.04截图快捷键
  20. 《算法笔记》胡凡——4.2散列

热门文章

  1. 三极管和MOS管的使用及区别
  2. ML / SML 常见错误解决办法
  3. 20 多个国外优秀Android开源 App
  4. 安装mathtype时找不到文件mathpage.wil
  5. ca机构将会被区块链取代
  6. ubuntu 16.04 chrome flash player 插件更新(adobe flash player 不是最新版本)
  7. java—JSON(课堂笔记篇)
  8. NJU 2020 计算机拔尖(数学)测试 解题报告
  9. pak文件的打包和解包
  10. 2016-2017 7th BSUIR Open Programming Contest. Final 补题