import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.ticker import FuncFormatter
url = 'https://raw.githubusercontent.com/alura-cursos/python_dados/refs/heads/main/Dados/contagem_bicicletas.csv'
df = pd.read_csv(url)
df.head()
df['data_hora'] = pd.to_datetime(df['data_hora'])
df['Data'] = df['data_hora'].dt.date
df_bike = df.groupby('Data')['contagem'].sum().reset_index()
df_bike
def formata_valores(x):
return f'{x/1000}K'
fig, ax = plt.subplots(figsize = (14,8), dpi = 150)
fig.subplots_adjust(right=0.7)
ax = sns.lineplot(data = df_bike, x = 'Data', y = 'contagem', color = '#0C8040')
plt.suptitle('Quantidade de bicicletas compartilhadas em Londres',
fontsize = 16, ha = 'right', x = 0.65, y = 1, color = '#212529', weight = 'bold')
ax.set_title('Anos 2015 -2017', fontsize = 14, loc = 'left', color = '#495057')
ax.set_xlabel('Data', fontsize = 12)
ax.set_ylabel('Quantidade Compartilhada', fontsize = 12, labelpad = 20)
ax.tick_params(axis = 'both', length = 0)
ax.set_ylim(0,80000)
sns.despine()
ax.text(1, -0.15, 'Fonte dos dados: Transport for London (TfL), disponível em https://cycling.data.tfl.gov.uk/',
transform=ax.transAxes, fontsize=10, ha='right', va='center')
ax.text(0.6, 0.75,
'Os picos de demanda em $\\bf{julho}$ e $\\bf{agosto}$ de $\\bf{2015}$\n'
'são atribuídos às greves de metrô. Adicionalmente,\n'
'observa-se que a $\\bf{demanda}$ por $\\bf{bicicletas}$ $\\bf{aumenta}$\n'
'significativamente durante os $\\bf{meses}$ $\\bf{mais}$ $\\bf{quentes}$\n'
'ano.\n',
fontsize = 12,
linespacing = 1.5,
transform=ax.transAxes)
def formata_valores(x,pos):
return f'{int(x/1000)}K'
formatter = FuncFormatter(formata_valores)
plt.gca().yaxis.set_major_formatter(formatter)
plt.tight_layout()
plt.show()