# Chart of the Week

A weekly series of quick random charts made in Python π

The chart of this week is a pie chart from the article Gamingβs Old Guard Isnβt Losing Sleep Over Netflix or Amazon by Bloomberg Opinion.

### Gaming Diversity

According to Newzoo, the global games market is expected to grow from $\$176$billion this year to$\$219$ billion by 2024 with nearly 3 billion people around the world playing games today. Mobile devices account for about half of the 2021 games market revenue

import numpy as np
import pandas as pd
from matplotlib import gridspec
from matplotlib import pyplot as plt

# Author: @QuantGirl
# Source: Bloomberg IG
# https://www.instagram.com/p/CRwE-JvgDA6/
# Type: Pie Chart

data = pd.DataFrame({'revenue': ['Mobile', 'Console', 'PC', 'Tablet'], 'percentage': [45, 28, 20, 7]})

labels = ['45% Mobile', '28% \n Console', '20% PC', '7% Tablet']

fig = plt.figure(figsize=(10, 10))
gs1 = gridspec.GridSpec(1, 1,
left=0.1, right=0.7,
bottom=0.1, top=0.7,
)
gs2 = gridspec.GridSpec(1, 1,
left=0.05, right=0.95,
bottom=0.9, top=1.0,
)

colors = ['dodgerblue', 'Black', 'silver', 'tomato']

wedges, texts = pie_ax.pie(
data['percentage'],
colors=colors,
counterclock=False,
startangle=90,
)

bbox_props = dict(boxstyle="square,pad=0.3", fc="w", ec="k", lw=0.9)
kw = dict(xycoords='data', textcoords='data', arrowprops=dict(arrowstyle="-"), zorder=0, va="center")

for i, p in enumerate(wedges):
ang = (p.theta2 - p.theta1) / 2. + p.theta1
horizontalalignment = {-1: "right", 1: "left"}[int(np.sign(x))]
connectionstyle = "angle,angleA=0,angleB={}".format(ang)
kw["arrowprops"].update({"connectionstyle": connectionstyle, "color": "Black"})
pie_ax.annotate(labels[i], xy=(x, y), xytext=(1.15 * np.sign(x), 1.2 * y),
horizontalalignment=horizontalalignment, **kw)

pie_ax.text(-1.5, -1.3, 'Source: Bloomberg Opinion', fontdict={'fontsize': 12,
'fontweight': 'bold', 'family': 'sans-serif',
'fontname': 'American Typewriter',
'color': 'Black'})

pie_ax.text(0.8, -1.3, '@QuantGirl',
fontdict={'fontsize': 14,
'fontweight': 'bold', 'family': 'sans-serif',
'fontname': 'American Typewriter',
'color': 'purple'})

pie_ax.axis('equal')
title_ax.set_facecolor('white')

title_ax.text(0.4, -1, "Nearly half of video games revenue \n comes from smartphones",
fontdict={'fontsize': 22, 'fontweight': 'bold',
'fontname': 'Arial',
},
ha="center", va="center", transform=title_ax.transAxes, color="Black")

for side in ['top', 'bottom', 'left', 'right']:
title_ax.spines[side].set_visible(False)
title_ax.axes.get_xaxis().set_visible(False)
title_ax.axes.get_yaxis().set_visible(False)

plt.savefig(r"Figures/PieChart.png",bbox_inches="tight")
plt.show()

This site uses Akismet to reduce spam. Learn how your comment data is processed.