Olá, Luiz Carlos!
Tudo bem?
A abordagem para utilizar essa formatação no Seaborn é um pouco diferente, mas que vale muito a pena aprender e dar uma nova cara aos seus gráficos. Para conseguirmos formatar os eixos X ou Y de nosso gráfico nós podemos utilizar o método set_major_formatter
e importar o ticker
da biblioteca do matplotlib, responsável por configurar a localização e formatação dos intervalos.
A título de exemplo, vamos seguir o Dataframe utilizado no curso Data Visualization: Explorando com Seaborn em que a saída do gorjetas.head()
seguiria mais ou menos o formato abaixo:
| valor_da_conta | gorjeta | sobremesa | dia_da_semana | hora_do_dia | total_de_pessoas | porcentagem |
---|
0 | 16.99 | 1.01 | Não | Domingo | Jantar | 2 | 6.0 |
1 | 10.34 | 1.66 | Não | Domingo | Jantar | 3 | 16.0 |
2 | 21.01 | 3.50 | Não | Domingo | Jantar | 3 | 17.0 |
3 | 23.68 | 3.31 | Não | Domingo | Jantar | 2 | 14.0 |
4 | 24.59 | 3.61 | Não | Domingo | Jantar | 4 | 15.0 |
Agora, nós fazemos a importação do ticker
, fazemos o query dos dados do valor da conta do tipo almoço e, na sequência, transformamos nossos dados na formatação desejada. No exemplo do código mais abaixo salvamos duas Data Series, uma com os valores do almoço em dólares (almoco_dolar
) e outra com os valores do almoço em euros (almoco_euro
), levando em consideração os valores das moedas no dia 14/09/2021.
Nesse exemplo, para fins didáticos, nós apenas plotaremos os valores em dólar.
Assim, chamamos o distplot()
dos dados tratados em dólar(almoco_dolar
) e, por fim, adicionamos a formatação desejada, onde xaxis
dita que a alteração é no eixo X, o set_major_formatter
recebe o tipo de formatação que queremos, que seria o ticker.StrMethodFormatter("$ {x:.02f}")
.
Esta formatação, pega os valores do nosso eixo X e aplica a formatação em forma de String onde $ é o símbolo que identifica os valores em dólar e a variável x é o valor. O .02f
coloca os nosso valores no formato de moeda com duas casas decimais.
Logo, o código seguiria o formato:
# Importando o ticker responsável para a formatação das coordenadas x e/ou y
from matplotlib import ticker
# Fazendo uma query para contabilizar os valores da conta do Almoço
almoco = gorjetas.query('hora_do_dia == "Almoço"').valor_da_conta
# Valores de dolar e euro referentes ao dia 14/09/21
dolar_para_real = 5.22
euro_para_real = 6.18
# Transformando os valores das contas do almoço em dolar e euro e passando cada
# um para uma variável diferente
almoco_dolar = almoco / dolar_para_real
almoco_euro = almoco / euro_para_real
# Plotando a Distribuição de Frequências dos valores da conta em dolares
ax = sns.distplot(almoco_dolar, kde=False)
ax.figure.set_size_inches(12, 6)
ax.set_title('Distribuição de Frequências dos valores da conta em dolares', fontsize=20)
ax.set_xlabel('Valor da Conta (U$)', fontsize=16)
ax.xaxis.set_major_formatter(ticker.StrMethodFormatter("$ {x:.02f}"))
ax
Por fim, aplicando essa alteração, o nosso gráfico ficaria dessa maneira:
Esperamos ter ajudado com a sua dúvida e qualquer dúvida é só chamar!
Abraços e bons estudos!