吃雞的火熱程度相信大家都有所了解驱富,今天小編就來帶大家制作“簡單的外掛”灾螃,相信能夠幫助大家大吉大利镊讼,今晚吃雞宽涌!
1、小島上人越多我活得更久蝶棋?
小編推薦大家可以加我的扣扣群 735934841 卸亮。里面有海量視頻教程和學(xué)習(xí)資料免費(fèi)領(lǐng)取,不失為是一個(gè)學(xué)習(xí)的好地方玩裙,歡迎你的到來兼贸。一起交流學(xué)習(xí)!共同進(jìn)步3越Α溶诞!
對(duì)game_size變量進(jìn)行生存分析發(fā)現(xiàn)還是小規(guī)模的比賽比較容易存活。
小編推薦大家可以加我的扣扣群學(xué)習(xí)Python决侈,私信小編“520”獲取群號(hào) 螺垢。里面有海量視頻教程,不失為是一個(gè)學(xué)習(xí)的好地方赖歌,歡迎你的到來枉圃。一起交流學(xué)習(xí)!共同進(jìn)步B搿孽亲!
1# R語言代碼如下:
2library(magrittr)
3library(dplyr)
4library(survival)
5library(tidyverse)
6library(data.table)
7library(ggplot2)
8library(survminer)
9pubg_full <- fread("../agg_match_stats.csv")
10# 數(shù)據(jù)預(yù)處理,將連續(xù)變量劃為分類變量
11pubg_sub <- pubg_full %>%
12 filter(player_survive_time<2100) %>%
13 mutate(drive = ifelse(player_dist_ride>0, 1, 0)) %>%
14 mutate(size = ifelse(game_size<33, 1,ifelse(game_size>=33 &game_size<66,2,3)))
15# 創(chuàng)建生存對(duì)象
16surv_object <- Surv(time = pubg_sub$player_survive_time)
17fit1 <- survfit(surv_object~party_size,data = pubg_sub)
18# 可視化生存率
19ggsurvplot(fit1, data = pubg_sub, pval = TRUE, xlab="Playing time [s]", surv.median.line="hv",
20 legend.labs=c("SOLO","DUO","SQUAD"), ggtheme = theme_light(),risk.table="percentage")
21f
<- survfit(surv_object~drive,data=pubg_sub)
22ggsurvplot(fit2, data = pubg_sub, pval = TRUE, xlab="Playing time [s]", surv.median.line="hv",
23 legend.labs=c("walk","walk&drive"), ggtheme = theme_light(),risk.table="percentage")
24fit3 <- survfit(surv_object~size,data=pubg_sub)
25ggsurvplot(fit3, data = pubg_sub, pval = TRUE, xlab="Playing time [s]", surv.median.line="hv",
26 legend.labs=c("small","medium","big"), ggtheme = theme_light(),risk.table="percentage")
2. 擊殺數(shù)與吃雞概率的關(guān)系
玩過農(nóng)藥的的童鞋都會(huì)知道展父,收人頭收得越多墨林,技能加成越大,傷害越來越大犯祠,無人能擋時(shí)就是勝利在望旭等。而在吃雞里面,能活到最后一個(gè)就是王者衡载,所以很明顯擊殺人頭越多搔耕,吃到雞的概率并不一定大。那一場游戲里面,擊殺多少個(gè)算厲害來呢弃榨?菩收?
我們篩選比賽中所有排名第一的玩家,看看他們是擊殺數(shù)分布:
看上圖是不是挺意外鲸睛,單場比賽擊殺2個(gè)以內(nèi)的占多數(shù)娜饵,吃到雞的人也不例外,他們并不追求人頭官辈,猥瑣發(fā)育也很重要.
小白玩家也不必?fù)?dān)心一場游戲里沒人頭箱舞,擊殺一兩個(gè)機(jī)器人也算是收獲不小來。
match_stats = pd.read_csv('F:/pubg-match-deaths/aggregate/agg_match_stats_0.csv')
winer = match_stats.loc[(match_stats['team_placement'] == 1), :].dropna()
labels = [0, 2, 5, 8, 11, 15, 20, 30, 40, 50]
winer['kill'] = pd.cut(winer['player_kills'], bins=labels)
winer['assist'] = pd.cut(winer['player_assists'], bins=labels)
winer['kill'].value_counts().plot.bar(figsize=(10, 10))
plt.savefig('out7.png', dpi=100)
3拳亿、最后毒圈有可能出現(xiàn)的地點(diǎn)晴股?
面對(duì)有本事能茍到最后的我,怎么樣預(yù)測最后的毒圈出現(xiàn)在什么位置肺魁。從表agg_match_stats數(shù)據(jù)找出排名第一的隊(duì)伍电湘,然后按照match_id分組,找出分組數(shù)據(jù)里面player_survive_time最大的值鹅经,然后據(jù)此匹配表格kill_match_stats_final里面的數(shù)據(jù)寂呛,這些數(shù)據(jù)里面取第二名死亡的位置,作圖發(fā)現(xiàn)激情沙漠的毒圈明顯更集中一些瘾晃,大概率出現(xiàn)在皮卡多昧谊、圣馬丁和別墅區(qū)。絕地海島的就比較隨機(jī)了酗捌,但是還是能看出軍事基地和山脈的地方更有可能是最后的毒圈呢诬。
分析結(jié)果
1. 平均用戶日在線時(shí)長2小時(shí)
從分布圖上看大部分用戶都在1小時(shí)以上,最猛的幾個(gè)人超過8小時(shí)胖缤。
注:我這里統(tǒng)計(jì)的是每一局的存活時(shí)間尚镰,實(shí)際在線時(shí)長會(huì)比我這個(gè)更長。
2. 女性角色被救次數(shù)高于男性
終于知道為什么有那么多人妖了哪廓,原來在游戲里面可以占便宜啊狗唉。
3. 女性角色救人次數(shù)高于男性
給了大家一個(gè)帶妹上分的好理由。
4. 周五大家最忙
估計(jì)周五大家都要忙著交差和寫周報(bào)了涡真。
5. 晚上22點(diǎn)是游戲高峰
凌晨還有那么多人玩分俯,你們不睡覺嗎?
能拿到救死扶傷稱號(hào)的大部分都是女性角色哆料,再一次證明玩游戲要帶妹缸剪。 回歸到這個(gè)游戲的本質(zhì),那就是生存游戲东亦,沒什么比活下來更重要的了杏节。
結(jié)尾
這次查看了陌生人數(shù)據(jù)的場景才能提取到這么多數(shù)據(jù)。我們可以通過同樣的手段來分析王者榮耀和其它游戲的數(shù)據(jù),有興趣的同學(xué)可以嘗試一下奋渔。 最后再說一下镊逝,98k是把好槍,配8 倍鏡非常爽嫉鲸。
1#最后毒圈位置2import matplotlib.pyplot as plt3import pandas as pd4import seaborn as sns5from scipy.misc.pilutil import imread6import matplotlib.cm as cm78#導(dǎo)入部分?jǐn)?shù)據(jù)9deaths = pd.read_csv("deaths/kill_match_stats_final_0.csv")10#導(dǎo)入aggregate數(shù)據(jù)11aggregate = pd.read_csv("aggregate/agg_match_stats_0.csv")12print(aggregate.head())13#找出最后三人死亡的位置1415team_win = aggregate[aggregate["team_placement"]==1] #排名第一的隊(duì)伍16#找出每次比賽第一名隊(duì)伍活的最久的那個(gè)player17grouped = team_win.groupby('match_id').apply(lambda t: t[t.player_survive_time==t.player_survive_time.max()])1819deaths_solo = deaths[deaths['match_id'].isin(grouped['match_id'].values)]20deaths_solo_er = deaths_solo[deaths_solo['map'] == 'ERANGEL']21deaths_solo_mr = deaths_solo[deaths_solo['map'] == 'MIRAMAR']2223df_second_er = deaths_solo_er[(deaths_solo_er['victim_placement'] == 2)].dropna()24df_second_mr = deaths_solo_mr[(deaths_solo_mr['victim_placement'] == 2)].dropna()25print (df_second_er)2627position_data = ["killer_position_x","killer_position_y","victim_position_x","victim_position_y"]28for position in position_data:29 df_second_mr[position] = df_second_mr[position].apply(lambda x: x*1000/800000)30 df_second_mr = df_second_mr[df_second_mr[position] != 0]3132 df_second_er[position] = df_second_er[position].apply(lambda x: x*4096/800000)33 df_second_er = df_second_er[df_second_er[position] != 0]3435df_second_er=df_second_er36# erangel熱力圖37sns.set_context('talk')38bg = imread("erangel.jpg")39fig, ax = plt.subplots(1,1,figsize=(15,15))40ax.imshow(bg)41sns.kdeplot(df_second_er["victim_position_x"], df_second_er["victim_position_y"], cmap=cm.Blues, alpha=0.7,shade=True)4243# miramar熱力圖44bg = imread("miramar.jpg")45fig, ax = plt.subplots(1,1,figsize=(15,15))46ax.imshow(bg)47sns.kdeplot(df_second_mr["victim_position_x"], df_second_mr["victim_position_y"], cmap=cm.Blues,alpha=0.8,shade=True)
it2
文章就到這里啦~