Waffle Plot (PT-BR)

Retomando a análise prévia sobre os dados de smartphones na Índia. Neste post continuarei explorando os dados em busca de perguntas e respostas que podem nos levar a resultados interessantes.

Guilherme Bastos Gomes https://gbastosg.github.io/guilhermesportfolio/
2022-08-03

Olá!

Neste post continuaremos explorando os dados sobre smartphones vendidos na Índia, o que mais existe de interessante naquele data set?

EDA

O data set foi construído durante a última análise, onde usei o pacote janitor para limpar os dados e organizar as colunas. Saiba mais sobre isso neste post aqui!

Uma olhada no data set:

glimpse(smartphones_sold)
Rows: 1,513
Columns: 11
$ product_name        <chr> "XOLO T1000 (Black, 4 GB)", "GIONEE Pion…
$ product_url         <chr> "https://www.flipkart.com/xolo-t1000-bla…
$ brand               <chr> "XOLO", "GIONEE", "KARBONN", "KARBONN", …
$ sale_price          <dbl> 14153, 6500, 13298, 14990, 6499, 13604, …
$ mrp                 <dbl> 14153, 6500, 13298, 14990, 7499, 13604, …
$ discount_percentage <dbl> 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, …
$ number_of_ratings   <dbl> 333, 437, 28, 28, 61, 104, 105, 55, 450,…
$ number_of_reviews   <dbl> 130, 78, 7, 7, 8, 35, 24, 8, 146, 17, 74…
$ upc                 <chr> "MOBDMKDAKQGCYZ6D", "MOBDRKHTA3UXHAVD", …
$ star_rating         <dbl> 3.8, 3.6, 3.3, 3.3, 3.1, 4.3, 3.4, 3.4, …
$ ram                 <chr> "1 GB", "512 MB", "1 GB", "1 GB", "512 M…

Algumas perguntas para compreender o data set

Respondendo as perguntas

Para responder essa pergunta podemos usar as ferramentas do dplyr, por isso se lembre de chamar o comando library(tidyverse) para ativar a biblioteca.

Como nosso data set está desarrumado, vamos começar usando o pacote janitor para organizar as coisas:

library(janitor)
smartphones_sold <- clean_names(smartphones_sold)

Agora que temos tudo arrumado, podemos começar a analisar alguns gráficos para responder nossas perguntas.

Antes, vamos responder a nossa primeira pergunta usando o simples comandos em R:

 max(smartphones_sold$number_of_ratings)
 min(smartphones_sold$number_of_ratings)
 
#Qual o celular mais avaliado?
smartphones_sold %>%
  filter(number_of_ratings == 1340123)
[1] 1340123
[1] 0
# A tibble: 3 × 11
  product_name     product_url brand sale_price   mrp discount_percen…
  <chr>            <chr>       <chr>      <dbl> <dbl>            <dbl>
1 Redmi Note 4 (G… https://ww… Redmi      11400 11400                0
2 Redmi Note 4 (D… https://ww… Redmi      10490 11490                8
3 Redmi Note 4 (L… https://ww… Redmi      10490 10490                0
# … with 5 more variables: number_of_ratings <dbl>,
#   number_of_reviews <dbl>, upc <chr>, star_rating <dbl>, ram <chr>

O que há de interessante para ser falado do Redmi Note 4 na Índia?

Parece que o smartphone superou as expectativas e se tornou bem comum por lá, interessante não? O que podemos aprender com o design e a estratégia de marketing desse produto? Seria possível tirar proveito das mesmas técnicas?

Provavelmente sim, seria interessante compreender a estratégia de negócios por trás do dispositivo da Redmi e aprender algo com isso.

Por enquanto continuaremos nossa análise para compreender quem são os principais competidores da Redmi no mercado da influencia dos smartphones num país.

Nesse gráfico podemos perceber algo interessante, existem muitas avaliações para que possamos visualizar a discrepância entre os quais seriam mais avaliados.

library(ggthemes)

red_out_smartphones_sold <- smartphones_sold %>%
  group_by(brand) %>%
  arrange(desc(number_of_ratings)) %>%
  slice(1)
 
ggplot(data = red_out_smartphones_sold, 
                                   aes(x = fct_reorder(brand, number_of_ratings), 
                                       y = number_of_ratings, 
                                       size = number_of_ratings,
                                       color = factor(ram))
                                   ) +
geom_point() +
  theme_classic() +
  theme(legend.position= "bottom", 
      panel.grid = element_blank(),
      axis.text = element_blank()
) +
  geom_point(colour = "pink", size = 1)

E claro, se quisermos saber quem são os Top 10 podemos simplesmente usar a função head() combinada com arrange(desc()):


red_out_smartphones_sold %>%
  select(product_name, brand, number_of_ratings) %>%
  arrange(desc(number_of_ratings)) %>%
  head(10)
# A tibble: 10 × 3
# Groups:   brand [10]
   product_name                              brand    number_of_ratin…
   <chr>                                     <chr>               <dbl>
 1 Redmi Note 4 (Gold, 64 GB)                Redmi             1340123
 2 realme C2 (Diamond Blue, 16 GB)           realme             901941
 3 Honor 9 Lite (Midnight Black, 32 GB)      Honor              475790
 4 Mi A1 (Black, 64 GB)                      Mi                 471046
 5 Moto C Plus (Pearl White, 16 GB)          Motorola           365212
 6 POCO M2 (Brick Red, 128 GB)               POCO               348171
 7 Lenovo K8 Plus (Fine Gold, 32 GB)         Lenovo             307215
 8 ASUS Zenfone Max Pro M1 (Blue, 64 GB)     ASUS               262956
 9 SAMSUNG Galaxy F41 (Fusion Green, 128 GB) SAMSUNG            249339
10 ViVO Z1Pro (Sonic Black, 128 GB)          ViVO               158909

Agora sabemos quem foram as 10 empresas mais influentes do mercado de 2017 de smartphones na Índia. E quais foram os modelos de smartphones mais avaliados (lembrando que eles podem ter sido avaliados para pior aqui, pois estamos medindo influência para bem ou para mal :O)

Uma forma interessante de mostrar esse tipo de dado é usar o waffle plot, a.k.a squared pie chart.

Waffle Plot

Para começar vamos instalar o pacote waffle:

install.packages("waffle")
library(waffle)

Temos que ter um vetor para a função waffle() funcionar:

Para desenhar esse info-gráfico podemos usar os seguintes comandos:


library("waffle")

most_evaluated_10 <- red_out_smartphones_sold %>%
  select(product_name, brand, number_of_ratings) %>%
  arrange(desc(number_of_ratings)) %>%
  head(10)

#Criando um vetor com os valores
vec_most_10 <- c(Redmi = 1340123, realme = 901941, Honor = 475790, Mi = 471046, Motorola = 365212, POCO = 348171, Lenovo = 307215, ASUS = 262956, SAMSUNG = 249339,  ViVO = 158909)

#Normalizando o vetor para obtermos os valores relativos
norm_vec_most_10 <- vec_most_10 / 4880702 * 100

#Desenhando o gráfico
waffle(norm_vec_most_10, rows = 4,
       colors = c("firebrick1", "deepskyblue", "darkorchid", "gray1", "chartreuse2",
                  "gold", "firebrick", "goldenrod2", "hotpink4", "deeppink3"),
       legend_pos = "bottom",
       xlab = "Total de avaliações de smartphones em 2008 na Índia")

Info-gráficos são bastante úteis para mostrar informações rápidas com clareza. Aqui por exemplo vemos o quão influente foi a Redmi no mercado Indiano daquele ano em relação aos outros competidores.

Espero que tenha gostado, até a próxima!

Me segue no Twitter: @gimbgomes