Desafio 1
AZUL1, AZUL2, AZUL3, AZUL4, AZUL5, AZUL6 = '#174A7E', '#4A81BF', "#6495ED", '#2596BE', '#94AFC5', '#CDDBF3'
CINZA1, CINZA2, CINZA3, CINZA4, CINZA5, BRANCO = '#231F20', '#414040', '#555655', '#A6A6A5', '#BFBEBE', '#FFFFFF'
VERMELHO1, VERMELHO2, LARANJA1 = '#C3514E', '#E6BAB7', '#F79747'
VERDE1, VERDE2, VERDE3 = '#0C8040', '#9ABB59', '#9ECCB3'
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/alura-cursos/dataviz-graficos-composicao-relacionamento/refs/heads/main/dados/pib_br_2002_2020_estados.csv')
df.head()
df_regiao_servicos = df.copy()
df_regiao_servicos = df_regiao_servicos.query("ano == 2018")[['regiao','va_servicos']]
df_regiao_servicos = df_regiao_servicos.groupby('regiao').sum().sort_values('va_servicos', ascending = False)
df_regiao_servicos
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize = (6,6))
cores = [AZUL3, LARANJA1, VERMELHO2 , VERDE1, CINZA2]
plt.suptitle('Valores agregados de serviços no Brasil 2018', fontsize = 18,
color = CINZA1, ha = 'center')
plt.title('Por região, em porcentagem(%)', fontsize = 14, color = CINZA2, pad = 5, x = 0.20, y = 1 )
ptc, txt, _ = ax.pie(x = df_regiao_servicos['va_servicos'], labels = df_regiao_servicos.index, autopct = '%.1f%%',
pctdistance = 0.6, textprops = dict(size = 12, fontweight = 'bold', color = BRANCO), colors = cores)
for i, p in enumerate(ptc):
txt[i].set_color(p.get_facecolor())
plt.show()
Desafio 2
df_industria = df.copy()
df_industria_2010 = df_industria.query("ano == 2010")[ ['regiao', 'va_industria']]
df_industria_2010.loc[df_industria_2010['regiao']== 'Norte', 'regiao'] = 'Norte'
df_industria_2010.loc[df_industria_2010['regiao']!= 'Norte', 'regiao'] = 'Outros'
df_industria_2010 = df_industria_2010.groupby('regiao').sum().sort_values('va_industria', ascending = False)
df_industria_2020 = df_industria.query("ano == 2020")[ ['regiao', 'va_industria']]
df_industria_2020.loc[df_industria_2020['regiao']== 'Norte', 'regiao'] = 'Norte'
df_industria_2020.loc[df_industria_2020['regiao']!= 'Norte', 'regiao'] = 'Outros'
df_industria_2020 = df_industria_2020.groupby('regiao').sum().sort_values('va_industria', ascending = False)
display(df_industria_2010, df_industria_2020)
import matplotlib.pyplot as plt
fig, axs = plt.subplots(1, 2, figsize = (14,6))
plt.suptitle('Participação da Região Norte nos Valores Agregados da Indústria (2010 e 2020)', fontsize =18, color = CINZA2, ha = 'right',
x = 0.9)
ptc_2010, txt_2010, _ = axs[0].pie(df_industria_2010['va_industria'], labels = df_industria_2010.index, autopct = '%.1f%%', pctdistance = 0.8,
wedgeprops=dict(width=0.4), textprops = dict(size = 12, fontweight = 'bold', color = BRANCO), colors = [VERDE3,VERDE1])
axs[0].annotate('Em 2010', xy = (140,320), size = 12, xycoords = 'axes points', bbox=dict(boxstyle="round", fc=BRANCO, ec=CINZA3))
for i, p in enumerate(ptc_2010):
txt_2010[i].set_color(p.get_facecolor())
ptc_2020, txt_2020, _ = axs[1].pie(df_industria_2020['va_industria'], labels = df_industria_2020.index, autopct = '%.1f%%', pctdistance = 0.8,
wedgeprops=dict(width=0.4), textprops = dict(size = 12, fontweight = 'bold', color = BRANCO), colors = [VERDE3,VERDE1])
for i, p in enumerate(ptc_2020):
txt_2020[i].set_color(p.get_facecolor())
axs[1].annotate('Em 2020', xy = (140,320), size = 12, xycoords = 'axes points', bbox=dict(boxstyle="round", fc=BRANCO, ec=CINZA3))
axs[0].annotate('\n\n\n', xy=(260, 170), xycoords='axes points', xytext=(400, 240), textcoords='axes points',
bbox=dict(boxstyle="round", fc=BRANCO, ec=CINZA3), size=10, arrowprops=dict(arrowstyle="->",
fc=CINZA1))
axs[1].annotate('A Região Norte aumentou\nsua participação no PIB\nnos serviços da indústria em\naproximadamente 3%',
xy=(260, 170), xycoords='axes points', xytext=(-120, 240), textcoords='axes points',
bbox=dict(boxstyle="round", fc=BRANCO, ec=CINZA3), size=10, arrowprops=dict(arrowstyle="->", fc=CINZA1,
connectionstyle='arc,angleA=0,angleB=-60,armA=30,armB=-30,rad=5' ))
plt.show()