join me on my adventure to plot
The top 100 ranked players’ points. Red is Solar Imperialists, and blue is Lunar Revolutionaries. I fitted a curve to it.
points = 50000/rank^0.9
This is a close fit, once again showing 1/f scaling (such as the Zipf’s law).
General statistics:
import matplotlib.pyplot as plt
# data
dates = ['Mar.30', 'Mar.31', 'Apr.1', 'Apr.2', 'Apr.3', 'Apr.4', 'Apr.5', 'Apr.6', 'Apr.7']
images = [677, 615, 4166, 3665, 3284, 3386, 3286, 4777, 6786]
comments = [903, 1229, 10094, 5768, 4482, 4648, 4321, 4402, 4429]
posts = [421, 734, 10386, 6123, 8934, 8426, 7674, 9474, 12038]
# plot
plt.plot(dates, images, label='Images')
plt.plot(dates, comments, label='Comments')
plt.plot(dates, posts, label='Posts')
# add labels and legend
plt.title('General statistics')
plt.xlabel('Date')
plt.ylabel('Number')
plt.legend()
# show plot
plt.show()
data = ['red flux', '42069', 'Solar Empire', 'WatermelonRat', '13415', 'Solar Empire', 'Moon Flower', '10000', 'New Lunar Republic', 'Wing', '8369', 'New Lunar Republic', 'The Smiling Pony', '7802', 'Solar Empire', 'Mr.Myoozik', '7660', 'Solar Empire', 'FliegerFaustToP47', '7636', 'Solar Empire', 'Twiny', '7548', 'Solar Empire', 'LightningBolt', '7523', 'New Lunar Republic', 'AndwhatIseeisme', '7425', 'Solar Empire', 'CORDZ2000', '7254', 'Solar Empire', 'Credus', '6969', 'Solar Empire', 'NLR Acid Flask', '6839', 'New Lunar Republic', 'Modera', '6081', 'New Lunar Republic', 'miky94c', '6010', 'New Lunar Republic', 'Rainboom Dash', '6000', 'New Lunar Republic', 'Orbita', '5704', 'New Lunar Republic', '☬ ᏝᏆᏁᏨᎾᏝᏁᏰᏒᎬᎳᏕᎿᎬᏒᎱᎯᏁ ☬', '5424', 'New Lunar Republic', 'Awkward Segway', '5263', 'New Lunar Republic', 'ZONESS', '4715', 'New Lunar Republic', 'Dark', '4699', 'New Lunar Republic', 'Mellow Rhythm', '4051', 'New Lunar Republic', '🙂', '3370', 'Solar Empire', 'ItsMGH1203', '3350', 'Solar Empire', 'Jbond', '3115', 'New Lunar Republic', 'Grey the First', '3078', 'Solar Empire', 'Brainiac', '3051', 'Solar Empire', 'backgroundpony#F352', '2599', 'New Lunar Republic', 'OtherFritz', '2574', 'New Lunar Republic', 'BlueYoshi', '2528', 'New Lunar Republic', 'flutteryaylove', '2327', 'Solar Empire', 'djpup3', '2318', 'Solar Empire', 'Lunadorable', '2232', 'New Lunar Republic', 'Sollace', '2226', 'New Lunar Republic', 'made_by_Franch', '2222', 'New Lunar Republic', 'Galestorm', '2150', 'New Lunar Republic', 'TwilyIsBestPone', '2100', 'New Lunar Republic', 'icicle wicicle 1517', '2076', 'New Lunar Republic', 'Starless', '2019', 'New Lunar Republic', 'EpicGamer10075', '2006', 'New Lunar Republic', 'Hoofless', '2002', 'New Lunar Republic', 'Saelor', '2000', 'New Lunar Republic', 'Litrojia', '1935', 'Solar Empire', 'The Really Very Wery LAST UNICORN For Real, Bro!', '1878', 'New Lunar Republic', 'Jewellier', '1872', 'Solar Empire', 'ukbdesr', '1754', 'New Lunar Republic', 'Dragonpone', '1744', 'Solar Empire', 'HazyFire', '1636', 'New Lunar Republic', 'Sixes&Sevens', '1551', 'Solar Empire', 'LemonDrop', '1549', 'New Lunar Republic', 'JustForUploading', '1541', 'New Lunar Republic', 'happyb0y95', '1541', 'Solar Empire', 'Toastypk', '1500', 'Solar Empire', 'Lunar Warrior', '1482', 'New Lunar Republic', 'Watermelon Changeling', '1400', 'New Lunar Republic', 'LeoNero', '1337', 'New Lunar Republic', 'ThatOneGib', '1337', 'New Lunar Republic', 'Ghostpikachu', '1337', 'New Lunar Republic', 'Mildgyth', '1337', 'New Lunar Republic', 'Chopsticks', '1301', 'Solar Empire', 'Pizza split', '1300', 'Solar Empire', 'lonewolf', '1282', 'New Lunar Republic', 'Flutterio', '1267', 'New Lunar Republic', 'PonyCor', '1264', 'New Lunar Republic', 'Those Kids In The Corner', '1213', 'New Lunar Republic', 'Rarizzy!', '1200', 'Solar Empire', 'Moonatik', '1195', 'New Lunar Republic', 'WaynePonePone', '1182', 'Solar Empire', 'Rosa Birb', '1162', 'New Lunar Republic', 'Nebbie', '1151', 'New Lunar Republic', 'Dripponi', '1121', 'New Lunar Republic', 'Roserado', '1116', 'New Lunar Republic', 'Wheatley R.H.', '1111', 'New Lunar Republic', 'JP', '1104', 'Solar Empire', 'Jamin-P-Rose', '1063', 'New Lunar Republic', 'MonochromeWallflower', '1045', 'Solar Empire', 'Melisareb', '1042', 'Solar Empire', 'eagc7', '1040', 'Solar Empire', 'GalaxyLatte', '1033', 'New Lunar Republic', 'Republicball', '1000', 'New Lunar Republic', 'malte279', '1000', 'New Lunar Republic', 'PawelS', '1000', 'Solar Empire', 'Jade the bat', '998', 'New Lunar Republic', 'Lil’ Pegasus', '980', 'Solar Empire', 'Sff', '971', 'Solar Empire', 'RealityReaperNSFWC', '954', 'New Lunar Republic', 'Andyxdr', '944', 'Solar Empire', 'Valuable Ashes', '938', 'New Lunar Republic', 'CountDerpy', '911', 'New Lunar Republic', 'zero two', '890', 'Solar Empire', 'Zerowinger', '867', 'Solar Empire', 'ApplejackFan204', '842', 'New Lunar Republic', 'Hopeful_Ink_Hoof', '835', 'New Lunar Republic', 'Korora', '811', 'New Lunar Republic', 'apic86', '790', 'New Lunar Republic', 'Khamzat Chimaev', '780', 'New Lunar Republic', 'Small Brooke', '748', 'New Lunar Republic', 'JinxLynx785', '744', 'New Lunar Republic', 'Shimmering Spectacle', '725', 'New Lunar Republic', 'Elidiotadelaesquina', '723', 'New Lunar Republic']
data = [[data[i], int(data[i+1]), data[i+2]]for i in range(0, len(data), 3)]
import pandas as pd
df = pd.DataFrame(data, columns=['Name', 'Points', 'Faction'])
import numpy as np
fig, ax = plt.subplots(figsize=(16, 10))
colors = {'Solar Empire':'#fb3b02', 'New Lunar Republic':'#938fbc'} # Define colors for each faction
bar_colors = [colors[df['Faction'][i]] for i in range(len(df))]
ax = df.plot(kind='bar', y='Points', legend=None, color=bar_colors, ax=ax, width=0.7)
ax.set_xticks([])
ax.set_yscale('log')
# groups = df.groupby('Faction')
# for name, group in groups:
# ax.bar(group['Name'], group['Points'], color=colors[name], label=name)
xs = np.array(range(1, len(df)+1))
ax.plot(xs, 5e4/xs**0.9)
plt.title('Rank of points')
plt.xlabel('Rank')
plt.ylabel('Points')
plt.show()