Formatar rótulos em gráficos echarts4r

Olá pessoal! :slightly_smiling_face:
Eu estava usando no meu app shiny o pacote highcharter, porém descobrir que não posso usar no meu site , pois é para uma instituição governamental e segundo a licença deverei pagar pelo uso do pacote. Comecei a usar o pacote echarts4r que ao meu ver é mais enxuto que o pacote anterior.
Consegui configurar boa parte dos meus gráficos, porém não consegui configurar o rotulo dos pontos do gráfico de linha, por exemplo colocar o separadores de milhar e o separador de decimal. Para o eixo y foi bem simples como na imagem abaixo.

inf6 %>% filter(Estado_Município == "Pará") %>% 
  e_charts(x = Ano) %>% 
  e_line(serie = Valor,
         name = "Caregamento") %>% 
  e_tooltip() %>% 
  e_labels(fontSize = 12) %>% 
  e_format_y_axis(suffix = "",prefix = "",formatter = e_axis_formatter(locale = "PT",digits = 0)) %>% 
  e_axis_labels(x = "Ano", y = "Toneladas")

Obrigado pela atenção de todos! :grinning:

2 curtidas

Oieee!

Muitas vezes eu acabo procurando coisas na documentação da biblioteca echarts, pois no echarts4r a documentação vai até certo ponto…

Ex: Documentation - Apache ECharts

O argumento formatter é útil para isso. O problema é que nem sempre é direto com R, nesse caso eu montei um exemplo usando uma função que usa JavaScript feita pelo @wamorim: formatar_numero_br()

Fiz um exemplo usando uma base dados que todo mundo tem acesso.

library(dados)
library(echarts4r)

formatar_numero_br <- function(serie) {
  htmlwidgets::JS(
    glue::glue(
      "function(params) {return Intl.NumberFormat('pt-BR', { style: 'decimal'}).format(params.value[{{serie}}]);}",
      .open = "{{",
      .close = "}}"
    )
  )
}

dados::voos |>
  dplyr::count(mes) |>
  e_charts(x = mes) |>
  e_line(serie = n,
         name = "Quantidade de voos") |>
  e_tooltip(formatter = formatar_numero_br(1)) |>
  e_labels(fontSize = 12,
           distance = 10,
           formatter = formatar_numero_br(1)) |>
  e_format_y_axis(
    suffix = "",
    prefix = "",
    formatter = e_axis_formatter(locale = "PT", digits = 0)
  ) |>
  e_axis_labels(x = "Mês", y = "Quantidade de voos")


Eu vi uma solução como esta em um site gringo, mas pensei que teria algo mais simples como o próprio pacote. :sweat_smile:me
Acho que vou começar a me aventurar em javascript. :sweat_smile: :smiley: :smile:
Desde já agradeço a você, Beatriz. Não é a primeira vez que você ajuda esse Estatístico em migração para a Analise de Dados. o Próprio Curso R foi o meu ponto de partida. :smile: