library(readxl)
car_sales <- read_excel("E:/Download/car sales.xlsx", 
     col_types = c("text", "date", "text", 
         "text", "numeric", "text", "text", 
         "text", "text", "text", "text", "numeric", 
         "text", "text", "text", "text"))
head(car_sales)
## # A tibble: 6 × 16
##   Car_id  Date                `Customer Name` Gender `Annual Income` Dealer_Name
##   <chr>   <dttm>              <chr>           <chr>            <dbl> <chr>      
## 1 C_CND_… 2022-01-02 00:00:00 Geraldine       Male             13500 Buddy Stor…
## 2 C_CND_… 2022-01-02 00:00:00 Gia             Male           1480000 C & M Moto…
## 3 C_CND_… 2022-01-02 00:00:00 Gianna          Male           1035000 Capitol KIA
## 4 C_CND_… 2022-01-02 00:00:00 Giselle         Male             13500 Chrysler o…
## 5 C_CND_… 2022-01-02 00:00:00 Grace           Male           1465000 Chrysler P…
## 6 C_CND_… 2022-01-02 00:00:00 Guadalupe       Male            850000 Classic Ch…
## # ℹ 10 more variables: Company <chr>, Model <chr>, Engine <chr>,
## #   Transmission <chr>, Color <chr>, `Price ($)` <dbl>, Dealer_No <chr>,
## #   `Body Style` <chr>, Phone <chr>, Dealer_Region <chr>
library(lattice)
library(latticeExtra)
x = car_sales$`Annual Income`[1:1000]
y = car_sales$`Price ($)`[1:1000]
xyplot(y ~ x,
       data = car_sales,
       group = Gender,
       type = "p",
       pch  = 20,
       main = "Hubungan antara Pendapatan Tahunan\ndan Harga Kendaraan Berdasarkan Gender",
       xlab = "Pendapatan Tahunan",
       ylab = "Harga Kendaraan ($)",
       auto.key = list(space="right"),
       panel=function(x,y,...) {
         panel.lmline(x,y)
         panel.xyplot(x,y,...)
       })

Dari data yang diberikan dibuat visualisasi untuk melihat hubungan antara Annual Income dan Price ($), namun sebelum itu dilakukan pengurangan terhadap data, karena data ini mengandung 23.906 objek yang mana tidak efektif jika ingin dilakukan visualisasi menggunakan scatterplot, maka diambil 1.000 objek pertama dari data yang dianggap dapat mewakili data secara keseluruhan.

Dari grafik yang telah ditampilkan dapat dilihat bahwa titik berwarna kuning mendominasi, yang berarti data lebih banyak memuat penjualan mobil pada pria. Kemudian dapat dilihat pula terdapat gari regresi diantara harga 20000 sampai dengan 40000, garis regresi tersebut juga cenderung datar yang mengindikasikan bahwa tidak begitu ada hubungan signifikan antara harga kendaraan dan penghasilan/pendapatan tahunan seseorang.

Kemudian coba dilakukan visualisasi terhadap perusahaan mobil untuk melihat perusahaan mobil mana yang paling diminati oleh pelanggan.

library(ggplot2)
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:latticeExtra':
## 
##     layer
ggplot(data = car_sales) +
  geom_bar(mapping = aes(x     = Company,  
                         fill  = Company)) +
    coord_flip() # Flip Horizontal

Terdapat 30 perusahaan mobil yang terdaftar pada data, dengan jumlah penjualan tertinggi dihasilkan oleh perusahaan Chevrolet yang mencapai lebih dari 1.750 penjualan, lalu disusul oleh Dodge dan Ford dengan penjualan lebih dari 1.500. Sedangkan perusahaan dengan penjualan yang cukup rendah ditunjukkan oleh perusahaan Saab, Jaguar, dan Infiniti dengan penjualan kurang dari 250.

Setelah mengetahui perusahaan yang memiliki penjualan terbanyak, maka dilakukan analisis terhadap perusahaan tersebut, yakni Chevrolet.

Chevrolet <- subset(car_sales, Company == "Chevrolet") # Data Baru 

Misal ingin mengetahui Body Style yang paling disukai oleh pelanggan Chevrolet.

library(ggplot2)
ggplot(data = Chevrolet) +
  geom_bar(mapping = aes(x     = `Body Style`,  
                         fill  = `Body Style`))

Diperoleh bahwa pelanggan Chevrolet paling menyukai mobil dengan body style kategori SUV dengan lebih dari 500 penjualan, sedangkan yang kurang diminati adalah Sedan dengan penjualan hanya sekitar 100.

Kemudian saya melakukan visualisasi terhadap “dealer_region” untuk mengetahui wilayah mana yang berkontribusi paling besar terhadap penjualan mobil ini.

pie(table(car_sales$Dealer_Region))

Diperoleh bahwa terdapat 7 wilayah yang terdaftar pada data, namun dengan proporsi yang hampir sama untuk tiap wilayahnya, maka dibuat visualisasi yang lebih detail untuk mengetahui wilayah mana yang memiliki penjualan tertinggi.

ggplot(data = car_sales) +
  geom_bar(mapping = aes(x     = Dealer_Region,  
                         fill  = Dealer_Region))

table(car_sales$Dealer_Region)
## 
##     Aurora     Austin Greenville Janesville Middletown      Pasco Scottsdale 
##       3130       4135       3128       3821       3128       3131       3433

Diperoleh bahwa wilayah Austin memiliki penjualan tertinggi yaitu lebih dari 4000 penjualan, sedangkan Aurora, Greenville, Middletown, dan Pasco memiliki jumlah penjualan yang cukup mirip yaitu sekitar 3100 penjualan mobil.

Selanjutnya saya ingin mengetahui pendapatan tahunan orang orang pada masing-masing wilayah.

ggplot(data = car_sales,
       mapping = aes(x=Dealer_Region,
                     y=`Annual Income`,
                     fill=Dealer_Region)) +
  geom_boxplot() +
  coord_flip() 

Setelah melihat visualisasi boxplot, ternyata diperoleh bahwa boxplot dari masing masing wilayah sangat mirip satu sama lain, hanya dibedakan oleh outlier.