Files
Sonar/Reuse/makePiechart.py
T
2023-06-07 13:02:14 +02:00

101 lines
3.3 KiB
Python

import discord
import matplotlib.pyplot as plt
import numpy as np
import requests
def make_donut_chart(botmessage, playerid, server=""):
plt.figure().clear()
weapon = {
"human_execution": "execution",
"mp_weapon_car": "car",
"mp_weapon_defender": "charge rifle",
"mp_weapon_doubletake": "double take",
"mp_weapon_epg": "epg",
"mp_weapon_hemlok_smg": "volt",
"mp_weapon_lstar": "lstar",
"mp_weapon_r97": "r97",
"mp_weapon_rspn101": "r-201",
"mp_weapon_smart_pistol": "smart pistol",
"mp_weapon_sniper": "kraber",
"mp_weapon_vinson": "flatline",
"mp_weapon_autopistol": "re-45 auto",
"mp_weapon_alternator_smg": "alternator",
"mp_weapon_frag_grenade": "frag grenade",
"mp_weapon_g2": "g2",
"mp_weapon_lmg": "spitfire",
"mp_weapon_smr": "smr",
"mp_weapon_softball": "softball",
"mp_weapon_thermite_grenade": "firestar",
"melee_pilot_emptyhanded": "melee",
"mp_weapon_mastiff": "mastiff",
"mp_weapon_mgl": "mgl",
"mp_weapon_rspn101_og": "r-101",
"mp_weapon_wingman": "wingman",
"invalid": "invalid",
"mp_weapon_arc_launcher": "thunderbolt",
"mp_weapon_dmr": "dmr",
"mp_weapon_grenade_electric_smoke": "electric smoke",
"mp_weapon_pulse_lmg": "cold war",
"mp_weapon_satchel": "satchel",
"mp_weapon_shotgun": "eva-8 auto",
"mp_weapon_shotgun_pistol": "mozambique",
"mp_weapon_wingman_n": "wingman elite",
"mp_weapon_grenade_gravity": "gravity star",
"mp_weapon_grenade_sonar": "pulse blade",
"mp_weapon_rocket_launcher": "archer",
"outOfBounds": "outOfBounds",
"mind_crime": "mind crime",
"mp_weapon_esaw": "devotion",
"fall": "fall",
"mp_weapon_semipistol": "p2016",
"mp_weapon_grenade_emp": "arc grenade",
"mp_weapon_hemlok": "hemlok",
"phase_shift": "phase shift"
}
if(server != "All"):
payload = {'player': playerid, 'server': server}
else:
payload = {'player': playerid}
response = requests.get('https://tone.sleepycat.date/v2/client/weapons', params=payload).json()
labels = []
values = []
total = 0
dict_weapon_with_kills = {}
for i in response.keys():
weaponstats = response[i]
dict_weapon_with_kills[i] = weaponstats['kills']
total += weaponstats['kills']
other = 0
for j in dict_weapon_with_kills:
if(dict_weapon_with_kills[j] > total/20):
try:
labels.append(weapon[j])
except KeyError:
labels.append(j)
values.append(dict_weapon_with_kills[j])
else:
other += dict_weapon_with_kills[j]
labels.append("other")
values.append(other)
plt.style.use('ggplot')
plt.title("weapons used by player")
plt.pie(x=values, autopct='%.0f%%', startangle=90)
plt.axis('equal')
plt.legend(title="weapons" ,labels=labels, loc='upper left', bbox_to_anchor=(-0.17, 0.67, 0.5, 0.5))
circle = plt.Circle(xy=(0,0), radius=.1, facecolor='white')
plt.gca().add_artist(circle)
plt.savefig("Reuse/images/player_weapons_used.png")
plt.close()
img_file = discord.File("Reuse/images/player_weapons_used.png", filename="player_weapons_used.png")
botmessage.set_image(url="attachment://player_weapons_used.png")
return botmessage, img_file