Sebar Plot di R menggunakan ggplot2 (dengan Contoh)

Daftar Isi:

Anonim

Grafik adalah bagian ketiga dari proses analisis data. Bagian pertama adalah tentang ekstraksi data , bagian kedua membahas tentang pembersihan dan manipulasi data . Akhirnya, data scientist mungkin perlu mengkomunikasikan hasilnya secara grafis .

Pekerjaan data scientist dapat diulas pada gambar berikut

  • Tugas pertama seorang data scientist adalah menentukan pertanyaan penelitian. Pertanyaan penelitian ini tergantung pada tujuan dan sasaran proyek.
  • Setelah itu, salah satu tugas terpenting adalah rekayasa fitur. Data scientist perlu mengumpulkan, memanipulasi, dan membersihkan data
  • Saat langkah ini selesai, dia bisa mulai menjelajahi dataset. Terkadang, hipotesis asli perlu disempurnakan dan diubah karena adanya penemuan baru.

  • Ketika analisis penjelasan dicapai, data scientist harus mempertimbangkan kapasitas pembaca untuk memahami konsep dan model yang mendasarinya .
  • Hasilnya harus disajikan dalam format yang dapat dipahami oleh semua pemangku kepentingan. Salah satu metode terbaik untuk mengkomunikasikan hasil adalah melalui grafik .
  • Grafik adalah alat yang luar biasa untuk menyederhanakan analisis yang kompleks.

Dalam tutorial ini, Anda akan belajar-

  • ggplot2
  • Sebar
  • Ubah sumbu
  • Plot sebar dengan nilai yang pas
  • Tambahkan informasi ke grafik
  • Ubah nama sumbu x dan sumbu y
  • Kontrol timbangan
  • Tema
  • Simpan Plot

ggplot2

Bagian dari tutorial ini berfokus pada bagaimana membuat grafik / grafik dengan R.

Dalam tutorial ini, Anda akan menggunakan paket ggplot2. Paket ini dibangun di atas dasar yang konsisten dari buku Tata bahasa grafik yang ditulis oleh Wilkinson, 2005. ggplot2 sangat fleksibel, menggabungkan banyak tema dan spesifikasi plot pada tingkat abstraksi yang tinggi. Dengan ggplot2, Anda tidak dapat membuat grafik 3 dimensi dan membuat grafik interaktif.

Di ggplot2, grafik terdiri dari argumen berikut:

  • data
  • pemetaan estetika
  • benda geometris
  • transformasi statistik
  • timbangan
  • sistem koordinasi
  • penyesuaian posisi
  • faceting

Anda akan mempelajari cara mengontrol argumen tersebut di tutorial.

Sintaks dasar ggplot2 adalah:

ggplot(data, mapping=aes()) +geometric objectarguments:data: Dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common object are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`

Sebar

Mari kita lihat bagaimana ggplot bekerja dengan set data mtcars. Anda mulai dengan memplot sebar variabel mpg dan variabel drat.

Plot pencar dasar

library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()

Penjelasan Kode

  • Anda terlebih dahulu meneruskan mtcars set data ke ggplot.
  • Di dalam argumen aes (), Anda menambahkan sumbu x dan sumbu y.
  • Tanda + berarti Anda ingin R terus membaca kodenya. Itu membuat kode lebih mudah dibaca dengan memecahnya.
  • Gunakan geom_point () untuk objek geometris.

Keluaran:

Sebarkan plot dengan kelompok

Terkadang, menarik untuk membedakan nilai dengan sekelompok data (yaitu data tingkat faktor).

ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))

Penjelasan Kode

  • Aes () di dalam geom_point () mengontrol warna grup. Kelompok harus menjadi variabel faktor. Jadi, Anda mengubah roda gigi variabel menjadi sebuah faktor.
  • Secara keseluruhan, Anda memiliki kode aes (color = factor (gear)) yang mengubah warna titik.

Keluaran:

Ubah sumbu

Mengubah skala data adalah bagian besar dari pekerjaan data scientist. Dalam kesempatan langka, data hadir dalam bentuk lonceng yang bagus. Salah satu solusi untuk membuat data Anda kurang sensitif terhadap pencilan adalah dengan mengubah skala mereka.

ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))

Penjelasan Kode

  • Anda mengubah variabel x dan y di log () langsung di dalam pemetaan aes ().

Perhatikan bahwa transformasi lain dapat diterapkan seperti standardisasi atau normalisasi.

Keluaran:

Plot sebar dengan nilai yang pas

Anda dapat menambahkan tingkat informasi lain ke grafik. Anda dapat memplot nilai yang dipasang dari regresi linier.

my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear))) +stat_smooth(method = "lm",col = "#C42126",se = FALSE,size = 1)my_graph

Penjelasan Kode

  • grafik: Anda menyimpan grafik Anda ke dalam grafik variabel. Ini berguna untuk penggunaan lebih lanjut atau hindari baris kode yang terlalu rumit
  • Argumen stat_smooth () mengontrol metode penghalusan
  • method = "lm": Regresi linier
  • col = "# C42126": Kode untuk warna merah baris
  • se = FALSE: Jangan tampilkan kesalahan standar
  • size = 1: ukuran garis adalah 1

Keluaran:

Perhatikan bahwa metode penghalusan lainnya tersedia

  • glm
  • gam
  • loess: nilai default
  • pelek

Tambahkan informasi ke grafik

Sejauh ini, kami belum menambahkan informasi dalam grafik. Grafik harus informatif. Pembaca harus melihat cerita di balik analisis data hanya dengan melihat grafik tanpa mengacu pada dokumentasi tambahan. Karenanya, grafik membutuhkan label yang baik. Anda dapat menambahkan label dengan fungsi labs ().

Sintaks dasar untuk lab () adalah:

lab(title = "Hello Guru99")argument:- title: Control the title. It is possible to change or add title with:- subtitle: Add subtitle below title- caption: Add caption below the graph- x: rename x-axis- y: rename y-axisExample:lab(title = "Hello Guru99", subtitle = "My first plot")

Tambahkan judul

Salah satu informasi wajib untuk ditambahkan jelas merupakan judul.

my_graph +labs(title = "Plot Mile per hours and drat, in log")

Penjelasan Kode

  • my_graph: Anda menggunakan grafik yang Anda simpan. Ini menghindari penulisan ulang semua kode setiap kali Anda menambahkan informasi baru ke grafik.
  • Anda membungkus judul di dalam lab ().
  • Kode untuk warna garis merah
  • se = FALSE: Jangan tampilkan kesalahan standar
  • size = 1: ukuran garis adalah 1

Keluaran:

Tambahkan judul dengan nama dinamis

Judul dinamis berguna untuk menambahkan informasi yang lebih tepat dalam judul.

Anda dapat menggunakan fungsi paste () untuk mencetak teks statis dan teks dinamis. Sintaks dasar paste () adalah:

paste("This is a text", A)arguments- " ": Text inside the quotation marks are the static text- A: Display the variable stored in A- Note you can add as much static text and variable as you want. You need to separate them with a comma

Contoh:

A <-2010paste("The first year is", A)

Keluaran:

## [1] "The first year is 2010"
B <-2018

paste("The first year is", A, "and the last year is", B)

Keluaran:

## [1] "The first year is 2010 and the last year is 2018" 

Anda dapat menambahkan nama dinamis ke grafik kami, yaitu rata-rata mpg.

mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))

Penjelasan Kode

  • Anda membuat rata-rata mpg dengan mean (mtcars $ mpg) yang disimpan dalam variabel mean_mpg
  • Anda menggunakan paste () dengan mean_mpg untuk membuat judul dinamis yang mengembalikan nilai rata-rata mpg

Keluaran:

Tambahkan subtitle

Dua detail tambahan dapat membuat grafik Anda lebih eksplisit. Anda berbicara tentang subtitle dan caption. Subtitle berada tepat di bawah judul. Keterangan tersebut dapat menginformasikan siapa yang melakukan penghitungan dan sumber datanya.

my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")

Penjelasan Kode

  • Di dalam lab (), Anda menambahkan:
    • title = "Hubungan antara Mile per jam dan drat": Tambahkan judul
    • subtitle = "Hubungan dipecah berdasarkan kelas roda gigi": Tambahkan subtitle
    • caption = "Penghitungan penulis sendiri: Tambahkan keterangan
    • Anda memisahkan setiap informasi baru dengan koma,,
  • Perhatikan bahwa Anda memutus baris kode. Ini tidak wajib, dan ini hanya membantu membaca kode dengan lebih mudah

Keluaran:

Ubah nama sumbu x dan sumbu y

Variabel itu sendiri dalam kumpulan data mungkin tidak selalu eksplisit atau menurut konvensi menggunakan _ bila ada beberapa kata (yaitu, GDP_CAP). Anda tidak ingin nama seperti itu muncul di grafik Anda. Penting untuk mengubah nama atau menambahkan lebih banyak detail, seperti unitnya.

my_graph +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Penjelasan Kode

  • Di dalam lab (), Anda menambahkan:
    • x = "Drat definition": Ubah nama sumbu x
    • y = "Mile per hours": Ubah nama sumbu y

Keluaran:

Kontrol timbangan

Anda dapat mengontrol skala sumbu.

Fungsi seq () mudah digunakan saat Anda perlu membuat urutan angka. Sintaks dasarnya adalah:

seq(begin, last, by = x)arguments:- begin: First number of the sequence- last: Last number of the sequence- by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`

Misalnya, jika Anda ingin membuat rentang dari 0 hingga 12 dengan langkah 3, Anda akan memiliki empat angka, 0 4 8 12

seq(0, 12,4)

Keluaran:

## [1] 0 4 8 12 

Anda dapat mengontrol skala sumbu x dan sumbu y seperti di bawah ini

my_graph +scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) +scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Penjelasan Kode

  • Fungsi scale_y_continuous () mengontrol sumbu y
  • Fungsi scale_x_continuous () mengontrol sumbu x .
  • Hentian parameter mengontrol pemisahan sumbu. Anda dapat menambahkan urutan angka secara manual atau menggunakan fungsi seq ():
    • seq (1, 3.6, by = 0.2): Buat enam angka dari 2.4 hingga 3.4 dengan langkah 3
    • seq (1, 1.6, by = 0.1): Buat tujuh angka dari 1 hingga 1.6 dengan langkah 1

Keluaran:

Tema

Akhirnya, R memungkinkan kita untuk menyesuaikan plot dengan tema yang berbeda. Ggplot2 perpustakaan mencakup delapan tema:

  • theme_bw ()
  • theme_light ()
  • theme_classis ()
  • theme_linedraw ()
  • theme_dark ()
  • theme_minimal ()
  • theme_gray ()
  • theme_void ()
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Keluaran:

Simpan Plot

Setelah semua langkah ini, sekarang saatnya untuk menyimpan dan membagikan grafik Anda. Anda menambahkan ggsave ('NAME OF THE FILE) tepat setelah Anda memplot grafik dan itu akan disimpan di hard drive.

Grafik disimpan di direktori kerja. Untuk memeriksa direktori kerja, Anda dapat menjalankan kode ini:

directory <-getwd()directory 

Mari plot grafik fantastis Anda, simpan dan periksa lokasinya

my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")

Keluaran:

ggsave("my_fantastic_plot.png.webp")

Keluaran:

## Saving 5 x 4 in image

Catatan : Untuk tujuan pedagogis saja, kami membuat fungsi yang disebut open_folder () untuk membuka folder direktori untuk Anda. Anda hanya perlu menjalankan kode di bawah ini dan melihat di mana gambar itu disimpan. Anda akan melihat nama file my_fantastic_plot.png.webp.

# Run this code to create thefunctionopen_folder <- function(dir) {if (.Platform['OS.type'] == "windows") {shell.exec(dir)} else {system(paste(Sys.getenv("R_BROWSER"), dir))}}# Call thefunction to open the folder open_folder(directory)

Ringkasan

Anda dapat meringkas argumen untuk membuat plot sebar pada tabel di bawah ini:

Objektif

Kode

Plot pencar dasar

ggplot(df, aes(x = x1, y = y)) + geom_point()

Sebarkan plot dengan kelompok warna

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm")

Tambahkan nilai yang pas

ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1))

Tambahkan judul

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99"))

Tambahkan subtitle

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99"))

Ubah nama x

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1")

Ganti nama y

ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1")

Kontrol skala

ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1)

Buat log

ggplot(df, aes(x =log(x1), y = log(y))) + geom_point()

Tema

ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic()

Menyimpan

ggsave("my_fantastic_plot.png.webp")