导语
大吉大利,今晚吃鸡~ 今天跟朋友玩了几把吃鸡,经历了各种死法,还被嘲笑说论女生吃鸡的100种死法,比如被拳头抡死、跳伞落到房顶边缘摔死 、把吃鸡玩成飞车被车技秀死、被队友用燃烧瓶烧死的。这种游戏对我来说就是一个让我明白原来还有这种死法的游戏。
但是玩归玩,还是得假装一下我沉迷学习,所以今天就用吃鸡比赛的真实数据来看看如何提高你吃鸡的概率。
那么我们就用 Python 和 R 做数据分析来回答以下的灵魂发问?
首先来看下数据:
一、跳哪儿危险?
对于我这样一直喜欢苟着的良心玩家,在经历了无数次落地成河的惨痛经历后,我是坚决不会选择跳P城这样楼房密集的城市,穷归穷但保命要紧。所以我们决定统计一下到底哪些地方更容易落地成河?我们筛选出在前100秒死亡的玩家地点进行可视化分析。激情沙漠地图的电站、皮卡多、别墅区、依波城最为危险,火车站、火电厂相对安全。绝地海岛中P城、军事基地、学校、医院、核电站、防空洞都是绝对的危险地带。物质丰富的G港居然相对安全。
import numpy as np
2import matplotlib.pyplot as plt
3import pandas as pd
4import seaborn as sns
5from scipy.misc.pilutil import imread
6import matplotlib.cm as cm
7
8#导入部分数据
9deaths1 = pd.read_csv("deaths/kill_match_stats_final_0.csv")
10deaths2 = pd.read_csv("deaths/kill_match_stats_final_1.csv")
11
12deaths = pd.concat([deaths1, deaths2])
13
14#打印前5列,理解变量
15print (deaths.head(),'\n',len(deaths))
16
17#两种地图
18miramar = deaths[deaths["map"] == "MIRAMAR"]
19erangel = deaths[deaths["map"] == "ERANGEL"]
20
21#开局前100秒死亡热力图
22position_data = ["killer_position_x","killer_position_y","victim_position_x","victim_position_y"]
23for position in position_data:
24 miramar[position] = miramar[position].apply(lambda x: x*1000/800000)
25 miramar = miramar[miramar[position] != 0]
26
27 erangel[position] = erangel[position].apply(lambda x: x*4096/800000)
28 erangel = erangel[erangel[position] != 0]
29
30n = 50000
31mira_sample = miramar[miramar["time"] < 100].sample(n)
32eran_sample = erangel[erangel["time"] < 100].sample(n)
33
34# miramar热力图
35bg = imread("miramar.jpg")
36fig, ax = plt.subplots(1,1,figsize=(15,15))
37ax.imshow(bg)
38sns.kdeplot(mira_sample["victim_position_x"], mira_sample["victim_position_y"],n_levels=100, cmap=cm.Reds, alpha=0.9)
39
40# erangel热力图
41bg = imread("erangel.jpg")
42fig, ax = plt.subplots(1,1,figsize=(15,15))
43ax.imshow(bg)
44sns.kdeplot(eran_sample["victim_position_x"], eran_sample["victim_position_y"], n_levels=100,cmap=cm.Reds, alpha=0.9)