Kursus

R memungkinkan Anda membuat berbagai jenis plot, mulai dari jenis grafik dasar seperti density plot, dot plot, boxplot, dan scatter plot, hingga jenis grafik yang lebih kompleks secara statistik seperti probability plot.
Selain itu, R memungkinkan Anda beralih dari menghasilkan grafik dasar dengan sedikit kustomisasi menjadi memplot grafik tingkat lanjut dengan kustomisasi penuh dipadukan dengan grafik interaktif. Namun, tidak selalu kita mendapatkan hasil yang kita inginkan untuk plot R kita: Stack Overflow dipenuhi pertanyaan kita tentang plot, dengan banyak pertanyaan yang berulang.
Inilah alasan DataCamp memutuskan untuk mengumpulkan semua pertanyaan yang sering diajukan beserta jawaban dengan penilaian tertinggi dalam sebuah postingan blog.
Untuk berlatih membuat plot di R, coba kursus visualisasi data di R ini.
15 Pertanyaan Plot R
1. Cara Menggambar Plot R Kosong
Buka Bingkai Plot Baru
Anda dapat membuka bingkai plot kosong dan mengaktifkan perangkat grafis di R sebagai berikut:Catatan bahwa fungsi plot.new() dan frame() mendefinisikan bingkai plot baru tanpa sumbu, label, atau garis tepi. Ini menandakan bahwa plot baru akan dibuat: jendela grafis baru akan terbuka jika Anda belum memiliki satu pun yang terbuka, jika tidak maka jendela yang ada disiapkan untuk menampung plot baru. Anda dapat membaca lebih lanjut tentang fungsi-fungsi ini di sini.
Atur Ukuran Jendela Grafis
Anda juga dapat menggunakan fungsi plot.window() untuk mengatur dimensi horizontal dan vertikal dari plot kosong yang baru saja Anda buat:
plot.new()
pWidth = 3
pHeight = 2
plot.window(c(0,pWidth),
c(0,pHeight))
Gambar Plot Kosong Sebenarnya
Anda dapat menggambar plot kosong dengan fungsi plot(). Selain itu, lengkapi plot kosong dengan sumbu, label sumbu, dan judul dengan fungsi mtext() dan title().
Anda memberi koordinat (5,5) untuk plot, tetapi Anda tidak menampilkan pemetaan apa pun dengan mengatur argumen type ke "n".
Tip: coba ubah argumen ini menjadi "p" atau "b" dan lihat apa yang terjadi!
Selain itu, Anda tidak memberi anotasi pada plot, tetapi Anda menetapkan batas dari 0 hingga 10 pada sumbu x dan y.
Terakhir, Anda dapat memilih untuk menggambar kotak di sekitar plot dengan fungsi box() dan menambahkan beberapa titik dengan fungsi points():
Catatan bahwa Anda dapat menempatkan koordinat x dan koordinat y dalam vektor untuk memplot beberapa titik sekaligus. Argumen pch memungkinkan Anda memilih simbol, sedangkan argumen cex diberi nilai yang menunjukkan seberapa besar teks dan simbol yang diplot harus diskalakan terhadap nilai default.
Tip: jika Anda ingin melihat nomor mana yang terhubung ke simbol apa, klik di sini.
2. Cara Mengatur Label Sumbu dan Judul Plot R
Sumbu pada plot R menjadi salah satu topik paling populer dari pertanyaan di Stack Overflow; Pertanyaan terkait topik ini sangat beragam.
Teruslah membaca untuk mengetahui jenis pertanyaan apa yang DataCamp temukan cukup umum!
Memberi Nama Sumbu (Dengan Superskrip atau Subskrip) dan Menambahkan Judul pada Plot R?
Anda dapat dengan mudah menamai sumbu dan menambahkan judul agar plot R Anda lebih spesifik dan mudah dipahami audiens Anda.
Ini dapat dilakukan dengan menambahkan argumen main untuk judul utama, sub untuk subjudul, xlab untuk label sumbu x, dan ylab untuk label sumbu y.
Catatan bahwa jika Anda ingin judul dengan superskrip atau subskrip, Anda dapat dengan mudah menambahkannya di argumen main dari fungsi plot(). Pastikan menggunakan expression() dan gunakan simbol ^ untuk superskrip atau tanda kurung siku untuk subskrip.
Cobalah pada potongan DataCamp Light di bawah ini:
Anda juga dapat memastikan ada huruf Yunani pada label sumbu dengan menggunakan kode yang menggabungkan fungsi expression() dan paste(). Jalankan potongan kode berikut:
Sesuaikan Tampilan Label Sumbu
Untuk menyesuaikan tampilan label sumbu x dan y, Anda dapat menggunakan argumencol.lab dan cex.lab. Argumen pertama digunakan untuk mengubah warna label sumbu x dan y, sedangkan argumen kedua digunakan untuk menentukan ukuran label sumbu x dan y relatif terhadap pengaturan (default) cex.
Untuk informasi lebih lanjut tentang argumen-argumen ini, buka halaman ini.
Hapus Label Sumbu dan Anotasi Plot
Jika Anda ingin menghilangkan nilai sumbu dari plot, Anda dapat terlebih dahulu menambahkan argumen xaxt dan yaxt, diatur sebagai "n". Argumen-argumen ini diisi dengan karakter yang menentukan jenis sumbu x. Jika Anda memasukkan "n", seperti pada perintah di bawah, Anda dapat menekan pemetaan sumbu.
Perhatikan bahwa dengan memberi karakter lain apa pun pada argumen xaxt dan yaxt, sumbu x dan y akan diplot.
ann dan mengaturnya ke FALSE untuk memastikan label sumbu mana pun dihapus.
Tip: bukan informasi yang Anda cari? Kunjungi halaman ini.
Putar Label Sumbu Plot
Anda dapat menambahkan argumenlas ke fungsi axis() untuk memutar angka yang sesuai untuk setiap sumbu:
Catatan bagaimana ini sebenarnya mengharuskan Anda menambahkan argumen ke fungsi plot() yang pada dasarnya menyatakan bahwa belum ada sumbu yang akan diplot: ini adalah tugas dari dua fungsi axis() yang menyusul.
Argumen las dapat memiliki tiga nilai yang dikaitkan dengannya. Bergantung pada opsi yang Anda pilih, penempatan label akan berbeda: jika Anda memilih 0, label akan selalu sejajar dengan sumbu (ini adalah default); Jika Anda memilih 1, label akan diletakkan secara horizontal. Pilih 2 jika Anda ingin label tegak lurus terhadap sumbu dan 3 jika Anda ingin label ditempatkan secara vertikal.
Masih ada lagi. Jika Anda ingin mengetahui lebih banyak tentang kemungkinan fungsi axis(), teruslah membaca!
Pindahkan Label Sumbu Plot R Anda
Jadi, Anda ingin memindahkan label sumbu Anda?
Tenang, Anda dapat melakukannya dengan fungsi axis(); Seperti yang mungkin telah Anda perhatikan sebelumnya dalam tutorial ini, fungsi ini memungkinkan Anda terlebih dahulu menentukan di mana Anda ingin menggambar sumbu. Misalnya, Anda ingin menggambar sumbu x di atas area plot dan sumbu y di sisi kanannya.
Ingat bahwa jika Anda memberikan 1 atau 2 ke fungsi axis(), sumbu Anda akan digambar di bawah dan di kiri area plot. Gulir sedikit ke atas untuk melihat contohnya pada potongan kode sebelumnya!
3 dan 4 ke fungsi axis():
Seperti yang Anda lihat, pertama-tama, Anda memplot x dan y, tetapi Anda tidak menampilkan sumbu dan anotasi. Lalu, Anda menambahkan sumbu yang ingin Anda lihat dan menentukan lokasinya terhadap plot.
Fleksibilitas yang diciptakan fungsi axis() untuk Anda terus berkembang! Lihat pertanyaan yang sering diajukan berikutnya untuk melihat apa lagi yang dapat Anda selesaikan dengan fungsi R dasar ini.
Tip: buka pertanyaan terakhir untuk melihat lebih lanjut cara memindahkan teks di label sumbu dengan hjust dan vjust!
3. Cara Menambahkan dan Mengubah Jarak Tanda Centang pada Plot R Anda
Cara Mengubah Jarak Tanda Centang pada Plot R Anda
Membiarkan R menentukan tanda centang pada plot dapat cukup menjengkelkan dan mungkin ada saatnya Anda ingin menyesuaikannya.
1. Menggunakan Fungsi axis() untuk Menentukan Tanda Centang pada Plot Anda
Seperti yang Anda lihat, pertama-tama Anda menentukan posisi tanda centang dan labelnya. Lalu, Anda menggambar plot, menentukan jenis sumbu x sebagai "n", menekan pemetaan sumbu.
Kemudian, pekerjaan sebenarnya dimulai:
- Fungsi
axis()memungkinkan Anda menentukan sisi plot tempat sumbu akan digambar. Dalam kasus ini, argumen diisi dengan1, yang berarti sumbu digambar di bawah. Jika nilainya2, sumbu akan digambar di kiri dan jika nilainya3atau4, sumbu masing-masing akan digambar di atas atau di kanan; - Argumen
atmemungkinkan Anda menunjukkan titik-titik tempat tanda centang akan digambar. Dalam kasus ini, Anda menggunakan posisi yang didefinisikan dalamV1; - Demikian pula,
labelsyang ingin Anda gunakan adalah yang ditentukan dalamV2; - Anda menyesuaikan arah centang melalui
tck: dengan memberi argumen ini nilai negatif, Anda menentukan bahwa centang harus muncul di bawah sumbu.
Tip: coba berikan nilai positif pada argumen tck dan lihat apa yang terjadi!
tcl dan tampilan label centang dikontrol dengan cex.axis, col.axis, dan font.axis.
2. Menggunakan Fungsi Lain untuk Menentukan Tanda Centang pada Plot R Anda
Anda juga dapat menggunakan fungsi par() dan plot() untuk mendefinisikan posisi tanda centang dan jumlah interval di antaranya.
xaxp yang Anda isi dengan posisi tanda centang yang terletak pada ujung sumbu x, diikuti jumlah interval antara tanda centang:
Anda juga dapat menjalankan kode berikut untuk pada dasarnya mendapatkan hasil yang sama:
Catatan bahwa ini hanya berfungsi jika Anda tidak menggunakan skala logaritmik. Jika koordinat log diatur true, atau dengan kata lain, jika par(xlog=T), tiga nilai yang Anda berikan ke xaxp memiliki arti berbeda: untuk rentang kecil, n bernilai negatif. Jika tidak, n berada pada 1:3, menentukan nomor kasus, dan x1 serta x2 adalah pangkat terendah dan tertinggi dari 10 di dalam koordinat pengguna, 10 ^ par(“usr”)[1:2].
Pada contoh ini, Anda menggunakan fungsi par(): Anda mengatur xlog ke TRUE dan menambahkan argumen xaxp untuk memberi koordinat tanda centang ekstrem dan jumlah interval di antaranya. Dalam kasus ini, Anda menetapkan nilai minimum 1, nilai maksimum 4 dan menambahkan bahwa jumlah interval antara setiap tanda centang harus 3.
Kemudian, Anda memplot x dan y, menambahkan argumen log untuk menentukan apakah akan memplot sumbu x atau y atau keduanya pada skala log. Anda dapat memberikan nilai "x", "y", dan "xy" ke argumen log untuk melakukan ini.
Cara Menambahkan Tanda Centang Minor pada Plot R
Anda dapat dengan cepat menambahkan tanda centang minor ke plot Anda dengan fungsiminor.tick() dari paket Hmisc:
- Argumen
nxmemungkinkan Anda menentukan jumlah interval yang ingin Anda bagi di area antara tanda centang mayor pada sumbu. Jika Anda memberikan nilai1, tanda centang minor akan dihilangkan; nymemungkinkan Anda melakukan hal yang sama sepertinx, tetapi untuk sumbu y;tick.ratiomenunjukkan rasio panjang tanda centang minor terhadap tanda centang mayor. Panjang yang terakhir diambil daripar(tck=x).
4. Cara Membuat Dua Sumbu X atau Y yang Berbeda
Opsi pertama adalah membuat plot pertama dan menjalankan fungsipar() dengan argumen new diatur ke TRUE untuk mencegah R membersihkan perangkat grafis:
Kemudian, Anda membuat plot kedua dengan plot(). Masukkan datanya, dan pastikan Anda menyesuaikan beberapa argumen, seperti type, axes, bty, xlab, dan ylab:
type: Anda dapat memasukkanluntuk memastikan Anda memplot dengan garis;axesdiatur keFALSEsehingga tidak ada sumbu yang diplot;btymenekan penggambaran kotak di sekitar plot;xlabdiatur ke string kosong, yang membuat tidak ada label pada sumbu x, danylabjuga diatur ke string kosong, sehingga sumbu y juga tidak memiliki label.
Lihat semuanya pada potongan DataCamp Light berikut. Perhatikan bahwa kode dari atas telah dimuat ke dalam lingkungan kerja Anda. Anda dapat memeriksanya dengan menggunakan R Console di sisi kanan kotak DataCamp Light:
Berikutnya, saatnya menambahkan sumbu dan menulis teks ke margin plot masing-masing dengan axis() dan mtext().
Anda dapat menambahkan sumbu baru di sisi kanan dengan menambahkan argumen side dan memberinya nilai 4 ke fungsi axis(). Selanjutnya, Anda menentukan argumen at untuk menunjukkan titik tempat tanda centang perlu digambar. Dalam kasus ini, Anda menghitung deret n+1 nilai “bulat” dengan jarak sama yang mencakup rentang nilai dalam z dengan fungsi pretty(). Ini memastikan bahwa Anda benar-benar memiliki angka dari sumbu y dari plot kedua Anda, yang Anda beri nama z.
Coba semua ini di bawah:
Catatan bahwa argumen side dapat memiliki tiga nilai: 1 untuk menempatkan teks di bawah, 2 untuk penempatan di kiri, 3 untuk penempatan di atas, dan 4 untuk menempatkan teks di kanan. Argumen line menunjukkan pada garis margin mana teks dimulai.
Hasil akhir dari kode Anda akan terlihat seperti ini:
set.seed(101)
x <- 1:10
y <- rnorm(10)
z <- runif(10, min=1000, max=10000)
plot(x, y)
par(new = TRUE)
plot(x,
z,
type = "l",
axes = FALSE,
bty = "n",
xlab = "",
ylab = "")
axis(side=4,
at = pretty(range(z)))
mtext("z",
side=4,
line=3)
Sebagai latihan tambahan, coba buat plot R dengan dua sumbu x yang berbeda! Lakukan ini di potongan DataCamp Light di bawah:
Perhatikan bahwa, meskipun Anda dapat melakukan semua ini secara manual dengan fungsi dasar plot(), axis(), dan mtext(), ada paket yang mengotomatiskan semuanya: fungsi twoord.plot() dari paket plotrix dan fungsi doubleYScale() dari paket latticeExtra cukup praktis dan mungkin lebih cepat jika Anda ingin melakukan hal yang sama:
Catatan bahwa contoh di atas dibuat dengan dataset ini. Jika Anda ragu tentang proses impor data atau fungsi read.table(), lihat tutorial DataCamp tentang mengimpor data di R.
5. Cara Menambahkan atau Mengubah Legenda Plot R
Menambahkan dan Mengubah Legenda Plot R dengan R Dasar
Anda dapat dengan mudah menambahkan legenda ke plot R Anda dengan fungsilegend():
Perhatikan bahwa argumen pt.cex dan title.cex yang dijelaskan dalam dokumentasi legend() tidak benar-benar berfungsi. Ada beberapa solusi:
- Tempatkan judul atau label legenda dalam font berbeda dengan menambahkan argumen
text.fontkelegend():
- Gambar legenda dua kali dengan nilai argumen
cexyang berbeda
Tip: jika Anda tertarik mengetahui lebih lanjut tentang warna yang dapat Anda gunakan di R, lihat dokumen PDF yang sangat membantu ini.
Cara Menambahkan dan Mengubah Legenda dan Label Plot R di ggplot2
Menambahkan legenda ke plot ggplot2 Anda cukup mudah. Anda cukup menjalankan hal berikut:
Dan Anda mendapatkan legenda default. Namun, dalam banyak kasus, Anda akan ingin menyesuaikan tampilan legenda lebih lanjut.
Ada dua cara mengubah judul dan label legenda di ggplot2:
- Menginformasikan skala agar menggunakan judul dan label yang berbeda
colour atau shape, atau estetika lainnya, Anda perlu mengubah nama dan label melalui fungsi scale_color_discrete() dan scale_shape_discrete() masing-masing:
Perhatikan bahwa plot terlihat agak tertekan di tab Plot pada potongan DataCamp Light, tetapi ini tidak akan menjadi masalah jika Anda menjalankan kode di RStudio.
Perhatikan bahwa Anda dapat membuat dua legenda jika Anda menambahkan argumen shape ke dalam fungsi geom_point() dan ke dalam argumen labels!
Jika Anda ingin memindahkan legenda ke bagian bawah plot, Anda dapat menentukan legend.position sebagai "bottom". Argumen legend.justification, di sisi lain, memungkinkan Anda memosisikan legenda di dalam plot.
Tip: lihat berbagai skala yang dapat digunakan untuk memberi tahu ggplot bahwa nama dan label lain harus digunakan di sini.
- Ubah data frame sehingga faktor memiliki bentuk yang diinginkan
Kemudian Anda dapat menggunakan nama faktor baru untuk membuat plot di ggplot2, menghindari “kerumitan” mengubah nama dan label dengan baris kode tambahan saat plotting.
Tip: untuk cheat sheet lengkap ggplot2, Anda bisa pergi ke sini.
6. Cara Menggambar Kisi pada Plot R Anda
Menggambar Kisi pada Plot R Anda dengan R Dasar
Untuk beberapa tujuan, Anda mungkin merasa perlu menyertakan kisi pada plot. Anda dapat dengan mudah menambahkan kisi ke plot dengan menggunakan fungsigrid():
Menggambar Kisi pada Plot R dengan ggplot2
Potongan kode di bawah menunjukkan cara memastikan plot Anda memiliki kisi dengan paket ggplot2. Perhatikan bahwa data chol telah dimuat dan langkah manipulasi data dari atas telah diterapkan.
Jika Anda tidak yakin seperti apa data tersebut, cetak baris pertama data frame di R Console pada potongan DataCamp Light:
Tip: jika Anda tidak ingin memiliki garis kisi minor, cukup berikan element_blank() ke panel.grid.minor.
Jika Anda ingin mengisi latar belakang dengan warna, tambahkan panel.background = element_rect(fill = "navy") ke kode Anda. Anda dapat melihat cara melakukannya pada blok DataCamp Light di bawah. Data chol telah dimuat dan dimanipulasi ringan, seperti sebelumnya. Coba sendiri!
7. Cara Menggambar Plot dengan PNG sebagai Latar Belakang
Anda dapat dengan cepat menggambar plot dengan .png sebagai latar belakang dengan bantuan paket png. Instal paket jika diperlukan, aktifkan untuk digunakan di ruang kerja melalui fungsi pustaka library() dan Anda dapat mulai memplot!
Pertama, Anda ingin memuat gambar. Gunakan fungsi readPNG() untuk menentukan path ke gambar!
tip: Anda dapat memeriksa di mana direktori kerja Anda diatur dan mengubahnya dengan menjalankan perintah berikut.
Jika gambar Anda disimpan di direktori kerja, Anda dapat cukup menuliskan readPNG("picture.png") alih-alih memasukkan seluruh path.
Selanjutnya, Anda ingin mengatur area plot dan memanggil fungsi par() untuk mengatur parameter grafis di rasterImage(). Anda menggunakan argumen usr untuk mendefinisikan batas koordinat pengguna pada wilayah plotting. Dalam hal ini, Anda menggunakan 1, 3, 2, dan 4.
Berikutnya, Anda menggambar kisi dan menambahkan beberapa garis:
install.packages("png")
library(png)
image <- readPNG("<path to your picture>")
getwd()
setwd("<path to a folder>")
plot(1:2, type='n', main="Plotting Over an Image", xlab="x", ylab="y")
lim <- par()
rasterImage(image, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])
grid()
lines(c(1, 1.2, 1.4, 1.6, 1.8, 2.0), c(1, 1.3, 1.7, 1.6, 1.7, 1.0), type="b", lwd=5, col="red")
Ini dapat memberi Anda hasil berikut jika Anda menggunakan logo DataCamp:
library(png)
image <- readPNG("datacamp.png")
plot(1:2, type="n", main="Plotting Over an Image", xlab="x", ylab="y", asp=1)
lim <- par()
rasterImage(image, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])
lines(c(1, 1.2, 1.4, 1.6, 1.8, 2.0), c(1.5, 1.3, 1.7, 1.6, 1.7, 1.0), type="b", lwd=5, col="red")

Perhatikan bahwa Anda perlu memberikan file .png sebagai input ke readPNG() dan bahwa, jika Anda mau, Anda juga dapat mengikuti prosedur yang sama untuk bekerja dengan gambar jpg. Tentu saja, Anda perlu memuat pustaka jpeg!
Perhatikan bahwa dalam contoh ini, Anda terlebih dahulu mengunduh gambar dari web untuk digunakan dalam plot, tetapi Anda juga dapat cukup menyimpan gambar dan memberikan path file ke readJPEG() untuk menggunakannya saat plotting.
Perlu dicatat juga bahwa contoh ini diambil dari R Graph Gallery, yang menawarkan banyak inspirasi untuk visualisasi data R, karena Anda dapat menemukan kode dan hasilnya dalam satu tempat! Ini ideal jika Anda mencari inspirasi atau cara cepat menemukan kode yang Anda butuhkan untuk grafik Anda!
8. Cara Menyesuaikan Ukuran Titik pada Plot R
Menyesuaikan Ukuran Titik pada Plot R dengan R Dasar
Untuk menyesuaikan ukuran titik dengan R dasar, Anda bisa cukup menggunakan argumencex:
symbols():
Lingkaran pada plot ini menerima nilai df$x3 sebagai jari-jari, sementara argumen inches mengontrol ukuran simbol. Ketika argumen ini menerima angka positif sebagai input, simbol diskalakan sehingga dimensi terbesarnya sebesar ukuran ini dalam inci.
Menyesuaikan Ukuran Titik pada Plot R Anda dengan ggplot2
Dalam kasus ini, Anda akan ingin menyesuaikan ukuran titik pada scatterplot. Anda dapat melakukannya dengan argumen size. Perhatikan bahwa data chol telah dimuat untuk Anda:
Perhatikan bahwa Anda juga dapat memberikan argumen size ke fungsi geom_point():
ggplot(chol,
aes(x=chol$WEIGHT, y=chol$HEIGHT)) +
geom_point(size = 2)
Anda akan mendapatkan hasil yang sama, tetapi jangan percaya begitu saja! Coba ganti potongan kode terakhir di DataCamp Light dengan potongan ini.
9. Cara Memasang Kurva Halus pada Data R Anda
Fungsi loess() mungkin merupakan solusi favorit setiap pemrogram R untuk jenis pertanyaan ini. Fungsi ini sebenarnya “memasang permukaan polinomial yang ditentukan oleh satu atau lebih prediktor numerik, menggunakan fitting lokal”.
Singkatnya, Anda memiliki data dan menggunakan fungsi loess(), di mana Anda mengorelasikan y dan x. Melalui ini, Anda menentukan respons numerik dan satu hingga empat prediktor numerik.
x dan y dan Anda memplot garis pada plot asli tempat Anda memprediksi nilai lo:
10. Cara menambahkan Error Bar pada Plot R
Menggambar Error Bar dengan R Dasar
Berita buruk: R tidak bisa langsung menggambar error bar begitu saja. Berita baik: Anda tetap bisa menggambar error bar tanpa perlu memasang paket tambahan!
Pertama, Anda perlu mendefinisikan fungsi berikut untuk menghitung beberapa statistik ringkas dari data frame Anda:
summarySE <- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE,
conf.interval=.95, .drop=TRUE) {
library(plyr)
# New version of length which can handle NA's: if na.rm==T, don't count them
length2 <- function (x, na.rm=FALSE) {
if (na.rm) sum(!is.na(x))
else length(x)
}
# This does the summary. For each group's data frame, return a vector with
# N, mean, and sd
datac <- ddply(data, groupvars, .drop=.drop,
.fun = function(xx, col) {
c(N = length2(xx[[col]], na.rm=na.rm),
mean = mean (xx[[col]], na.rm=na.rm),
sd = sd (xx[[col]], na.rm=na.rm)
)
},
measurevar
)
# Rename the "mean" column
datac <- rename(datac, c("mean" = measurevar))
datac$se <- datac$sd / sqrt(datac$N) # Calculate standard error of the mean
# Confidence interval multiplier for standard error
# Calculate t-statistic for confidence interval:
# e.g., if conf.interval is .95, use .975 (above/below), and use df=N-1
ciMult <- qt(conf.interval/2 + .5, datac$N-1)
datac$ci <- datac$se * ciMult
return(datac)
}
Perhatikan bahwa definisi fungsi ini berasal dari sumber ini dan juga tersedia melalui pustaka Rmisc.
Selanjutnya, Anda bisa menggunakannya untuk menghitung beberapa statistik dari data chol, yang sudah dimuat untuk Anda. Setelah itu, Anda bisa menggunakan angka-angka hasilnya untuk membuat plot.
Pastikan untuk memeriksa datanya sebelum memulai latihan ini!
Jika Anda ingin membaca semua argumen yang bisa diterima arrows(), silakan lihat di sini.
Menggambar Error Bar Dengan ggplot2
Error Bar yang Mewakili Standard Error of Mean
Pertama, ringkas data Anda dengan fungsi summarySE() dari paket Rmisc atau gunakan fungsi yang telah didefinisikan di atas. Lalu, Anda dapat menggunakan data frame hasilnya untuk memplot beberapa variabel, sekaligus menggambar error bar untuknya, misalnya menggunakan standard error of mean.
position_dodge():
Tip: jika Anda mendapat galat seperti “geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?”, biasanya Anda perlu menyesuaikan estetika group.
Error Bar yang Mewakili Confidence Interval
Melanjutkan dari ringkasan data yang Anda buat dengan fungsi summarySE() dari pustaka Rmisc atau dari bagian sebelumnya, Anda juga dapat menggambar error bar yang merepresentasikan confidence interval. Dalam kasus ini, dibuat plot dengan error bar untuk confidence 95%.
Perhatikan bagaimana warna error bar sekarang diatur menjadi hitam dengan argumen colour.
Error Bar yang Mewakili Simpangan Baku
Terakhir, Anda juga bisa menggunakan hasil dari fungsi summarySE() dari paket Rmisc atau dari definisi fungsi yang Anda salin dari salah satu bagian terakhir untuk memplot error bar yang merepresentasikan simpangan baku.
Secara khusus, Anda hanya perlu menyesuaikan argumen ymin dan ymax yang Anda berikan ke geom_errorbar():
Tip besar*: lihat juga ini untuk contoh lebih rinci tentang cara memplot mean dan error bar.
11. Cara Menyimpan Plot sebagai Gambar di Disk
Anda bisa menggunakan dev.copy() untuk menyalin grafik Anda, yang dibuat pada graphics device saat ini, ke device atau folder yang Anda tentukan sendiri.
x <- seq(0,2*pi,0.1)
y <- sin(x)
plot(x,y)
dev.copy(jpeg,
filename="<path to your file/name.jpg>");
dev.off();
(x)
(y)
12. Cara Memplot Dua Plot R Berdampingan
Memplot Dua Plot Berdampingan Menggunakan R Dasar
Anda bisa melakukannya dengan perintah R dasar:Dengan menambahkan fungsi par() dengan argumen mfrow, Anda menentukan sebuah vektor, yang dalam kasus ini berisi 1 dan 2: semua gambar kemudian akan digambar dalam array 1-kali-2 pada device per baris (mfrow).
Dengan kata lain, boxplot di atas akan dicetak dalam satu baris di dalam dua kolom.
Memplot Dua Plot Berdampingan Menggunakan ggplot2
Jika Anda ingin menempatkan plot berdampingan dan tidak ingin menentukan batasan, Anda bisa mempertimbangkan menggunakan paket ggplot2 untuk menggambar plot berdampingan.
Data Anda chol dan fungsi summarySE() telah dimuat. Periksa di R Console jika Anda tidak yakin seperti apa bentuknya:
Perhatikan bahwa Anda cukup menambahkan fungsi facet_grid() untuk menunjukkan bahwa Anda menginginkan dua plot berdampingan. Elemen yang digunakan untuk menentukan bagaimana plot digambar adalah MORT, seperti yang terlihat di atas!
Memplot Lebih Banyak Plot Berdampingan Menggunakan gridExtra
Untuk mencetak plot berdampingan, Anda dapat menggunakan paket gridExtra; Pastikan paket sudah terpasang dan diaktifkan di workspace Anda lalu jalankan sesuatu seperti ini:
Perhatikan bagaimana Anda kembali menentukan bagaimana kedua plot akan tampil berkat argumen ncol.
Memplot Lebih Banyak Plot Berdampingan Menggunakan lattice
Seperti solusi dengan paket ggplot2, paket lattice juga tidak mengharuskan Anda menentukan batasan atau cara Anda ingin plot dicetak berdampingan.
Alih-alih, Anda menggunakan bwplot() untuk membuat grafik trellis dengan jenis grafik box plot. Grafik trellis menampilkan sebuah variabel atau hubungan antarvariabel, dengan pengondisian pada satu atau lebih variabel lain.
Dalam hal ini, jika Anda menggunakan set data chol (yang bisa Anda temukan di sini atau muat dengan fungsi read.table()), Anda menampilkan variabel CHOL secara terpisah untuk setiap kombinasi tingkat faktor SMOKE dan MORT.
Perhatikan bahwa data telah dimuat untuk Anda pada potongan DataCamp Light di bawah!
Memplot Plot Berdampingan dengan gridBase
Cara lain untuk meletakkan dua plot berdampingan adalah dengan menggunakan paket gridBase, yang menangani “integrasi grafik base dan grid”. Ini berguna saat Anda ingin meletakkan plot R dasar dan ggplot berdampingan.
Cara kerjanya sebagai berikut: pertama, aktifkan paket yang diperlukan di workspace Anda. Dalam kasus ini, Anda ingin menyiapkan gridBase untuk meletakkan dua plot berdampingan dan grid serta ggplot2 untuk benar-benar membuat plotnya:
library(grid)
library(gridBase)
library(ggplot2)
plot.new()
gl <- grid.layout(nrow=1,
ncol=2)
vp.1 <- viewport(layout.pos.col=1,
layout.pos.row=1)
vp.2 <- viewport(layout.pos.col=2,
layout.pos.row=1)
pushViewport(viewport(layout=gl))
pushViewport(vp.1)
par(new=TRUE,
fig=gridFIG())
plot(x = 1:10,
y = 10:1)
popViewport()
pushViewport(vp.2)
ggplotted <- qplot(x=1:10,y=10:1, 'point')
print(ggplotted, newpage = FALSE)
popViewport(1)
Jika perlu, Anda bisa memulai plot kosong untuk kemudian menyusun layout. Perhatikan bahwa karena Anda ingin kedua plot dihasilkan berdampingan, hal ini mengharuskan Anda membuat grid layout yang terdiri dari satu baris dan dua kolom.
Kini, Anda ingin mengisi sel-sel grid dengan viewport. Ini mendefinisikan area persegi panjang pada graphics device Anda dengan bantuan koordinat di dalam area tersebut. Dalam kasus ini, lebih praktis menggunakan spesifikasi grid yang baru saja dijelaskan daripada koordinat x atau y riil. Itulah mengapa Anda harus menggunakan argumen layout.pos.col dan layout.pos.row.
Karena viewport hanya berupa deskripsi atau definisi, objek semacam ini perlu didorong ke pohon viewport sebelum Anda bisa melihat efek pada gambar. Anda ingin menggunakan fungsi pushViewport() untuk melakukan ini.
Sekarang Anda bisa melanjutkan dengan menambahkan area persegi panjang pertama vp.1 ke pohon ViewPort, setelah itu beri tahu R dengan gridFig() untuk menggambar plot base di dalam grid viewport (vp.1). Argumen fig biasanya menerima koordinat area gambar di area tampilan device. Dalam kasus ini, Anda menggunakan argumen fig untuk memulai plot baru, menambahkannya ke plot yang ada dengan menambahkan new = TRUE pada fungsi par() juga. Anda memplot grafik base dan menghapus viewport dari pohon:
plot.new()
gl <- grid.layout(nrow=1,
ncol=2)
vp.1 <- viewport(layout.pos.col=1,
layout.pos.row=1)
vp.2 <- viewport(layout.pos.col=2,
layout.pos.row=1)
pushViewport(viewport(layout=gl))
pushViewport(vp.1)
par(new=TRUE,
fig=gridFIG())
plot(x = 1:10,
y = 10:1)
popViewport()
Karena Anda ingin kedua plot dihasilkan berdampingan, Anda ingin menempatkan satu plot di kolom pertama dan lainnya di kolom kedua, keduanya berada di baris pertama.
Perhatikan bahwa fungsi pushViewport() menerima fungsi viewport(), yang di dalamnya berisi argumen layout. Argumen terakhir ini menunjukkan “objek grid layout yang membagi viewport menjadi subwilayah”.
Perhatikan juga bahwa Anda dapat menentukan pada fungsi popViewport() sebuah argumen untuk menunjukkan berapa banyak viewport yang ingin Anda hapus dari pohon. Jika nilainya 0, ini menunjukkan bahwa Anda ingin menghapus viewport sampai ke root viewport. Nilai default argumen ini adalah 1.
Lanjutkan dengan menambahkan area persegi panjang kedua vp.2 ke pohon ViewPort. Anda kemudian dapat membuat ggplot dan menghapus viewport dari pohon.
pushViewport(vp.2)
ggplotted <- qplot(x=1:10,
y=10:1,
'point')
print(ggplotted,
newpage = FALSE)
popViewport(1)
Perhatikan bahwa Anda perlu mencetak objek grafik yang dibuat oleh qplot() agar benar-benar tergambar dan ditampilkan. Pada saat yang sama, Anda juga perlu menentukan newpage = FALSE, jika tidak Anda hanya akan melihat qplot()…
Selain itu, ingat bahwa nilai default jumlah viewport yang akan dihapus pada fungsi popViewport() adalah 1. Ini membuat agak redundan untuk menulis popViewport(1) dalam kode.
13. Cara Memplot Beberapa Garis atau Titik
Menggunakan R Dasar untuk Memplot Beberapa Garis atau Titik dalam Plot R yang Sama
Untuk memplot dua atau lebih grafik dalam plot yang sama, Anda pada dasarnya mulai dengan membuat plot dasar yang biasa di R. Lalu, Anda mulai menambahkan lebih banyak garis atau titik ke plot tersebut. Dalam kasus ini, Anda menambahkan lebih banyak garis ke plot, sehingga Anda akan mendefinisikan lebih banyak sumbu y:Selanjutnya, Anda melihat bahwa garis-garis ini diplot dengan menggunakan fungsi lines().
Ini memberikan hasil berikut:
Perhatikan bahwa fungsi lines() menerima tiga argumen: sumbu x dan sumbu y yang ingin Anda plot serta warna (diwakili dengan argumen col) yang ingin Anda gunakan. Anda juga dapat menyertakan fitur berikut:
| Fitur | Argumen | Masukan |
|---|---|---|
| Jenis garis | lty |
Integer atau string karakter |
| Lebar garis | lwd |
Integer |
| Jenis plot | pch |
Integer atau satu karakter |
| Gaya ujung garis | lend |
Integer atau string |
| Gaya sambungan garis | ljoin |
Integer atau string |
| Batas mitre garis | lmitre |
Integer < 1 |
Berikut beberapa contoh:
lines(x,y2,col="green", lty = 2, lwd = 3)
lines(x,y2,col="green", lty = 5, lwd = 2, pch = 2)
lines(x,y3,col="black", lty = 3, lwd = 5, pch = 3, lend = 0, ljoin = 2)
lines(x,y4,col="blue", lty = 1, lwd = 2, pch = 3, lend = 2, ljoin = 1, lmitre = 2)
Perhatikan bahwa argumen pch tidak berfungsi terlalu baik dengan fungsi lines() dan sebaiknya digunakan hanya dengan points().
points():
Anda dapat menambahkan argumen yang sama ke fungsi points() seperti yang Anda lakukan pada fungsi lines() dan yang didaftarkan di atas. Ada beberapa tambahan, yaitu:
| Fitur | Argumen | Masukan |
|---|---|---|
| Warna latar (isi) | bg |
Hanya jika pch = 21:25 |
| Pembesaran karakter (atau simbol) | cex |
Integer |
Contoh kode untuk argumen ini sebagai berikut:
points(x,y4,col="blue", pch=21, bg = "red")
points(x, y5, col="yellow", pch = 5, bg = "blue")
Jika Anda memasukkan perubahan ini ke dalam plot yang Anda lihat di atas, Anda akan mendapatkan hasil berikut:
Menggunakan ggplot2 untuk Memplot Beberapa Garis atau Titik dalam Satu Plot R
Paket ggplot2 dengan mudah juga memungkinkan Anda membuat layer, yang memampukan Anda pada dasarnya memplot dua atau lebih grafik ke dalam plot R yang sama tanpa kesulitan dan cukup mudah:
14. Cara Mengunci Rasio Aspek untuk Plot R Anda
Jika Anda ingin menyimpan plot R sebagai gambar di mana sumbu-sumbunya proporsional terhadap ukurannya, itu tanda bahwa Anda ingin mengunci rasio aspek.
Menyesuaikan Rasio Aspek dengan R Dasar
Saat Anda bekerja dengan perintah R dasar untuk menghasilkan plot, Anda bisa menambahkan argumenasp dari fungsi plot(), diisi dengan sebuah integer, untuk menetapkan rasio aspek. Lihat contoh pertama ini tanpa rasio aspek yang ditetapkan:
asp:
Menyesuaikan Rasio Aspek untuk Plot Anda dengan ggplot2
Untuk mengunci rasio aspek pada plot ggplot2, Anda cukup menambahkan fungsi coord_fixed(), yang menyediakan “sistem koordinat skala tetap [yang] memaksa rasio tertentu antara representasi fisik unit data pada sumbu”.
Dengan kata lain, fungsi ini memungkinkan Anda menentukan jumlah unit pada sumbu y yang setara dengan satu unit pada sumbu x. Nilai default selalu 1, artinya satu unit pada sumbu x memiliki panjang yang sama dengan satu unit pada sumbu y. Jika rasio Anda ditetapkan lebih tinggi, unit pada sumbu y lebih panjang daripada unit pada sumbu x dan sebaliknya.
Bandingkan contoh berikut:Menyesuaikan Rasio Aspek untuk Plot Anda dengan MASS
Anda juga bisa mempertimbangkan menggunakan paket MASS, yang mencakup fungsi eqscplot(): fungsi ini menghasilkan plot dengan skala yang sama secara geometris. Ini dilakukan untuk scatterplot:
Tip: sebaiknya Anda memulai bingkai plot baru sebelum mengeksekusi kode di atas!
Perhatikan bahwa Anda dapat memberikan argumen tambahan ke fungsi eqscplot() untuk menyesuaikan tampilan scatterplot!
15. Apa Fungsi hjust dan vjust dalam ggplot2
Pada dasarnya, Anda menggunakan argumen ini saat ingin mengatur posisi teks pada ggplot Anda. hjust memungkinkan Anda menentukan perataan horizontal, sedangkan vjust ditujukan untuk mengontrol perataan vertikal. Lihat dokumentasi geom_text() untuk informasi lebih lanjut.
Untuk mendemonstrasikan apa yang terjadi, Anda dapat membuat data frame dari semua kombinasi faktor dengan fungsi expand.grid():
hjustvjust <- expand.grid(hjust=c(0, 0.5, 1),
vjust=c(0, 0.5, 1),
angle=c(0, 45, 90),
text="Text"
)
Perhatikan bahwa hjust dan vjust hanya bisa menerima nilai antara 0 dan 1.
0berarti teks rata kiri; Dengan kata lain, seluruh teks diratakan ke margin kiri. Ini biasanya yang Anda lihat saat bekerja dengan editor teks seperti Microsoft Word.1berarti teks rata kanan: seluruh teks diratakan ke margin kanan.
ggplot(), mendefinisikan sumbu x dan y masing-masing sebagai hjust dan vjust:
Perhatikan juga bagaimana argumen hjust dan vjust ditambahkan ke geom_text(), yang menangani anotasi tekstual pada plot.
Pada plot di atas Anda melihat bahwa teks pada titik (0,0) rata kiri, baik secara horizontal maupun vertikal. Di sisi lain, teks pada titik (1,1) rata kanan pada arah horizontal maupun vertikal. Titik (0,5,0,5) berada tepat di tengah: tidak benar-benar rata kiri maupun rata kanan untuk arah horizontal dan vertikal.
Perhatikan bahwa ketika argumen ini didefinisikan untuk mengubah teks sumbu, perataan horizontal untuk teks sumbu ditentukan relatif terhadap keseluruhan plot, bukan terhadap sumbu x!vjust untuk mengubah teks sumbu terhadap representasi plot Anda:
Untuk menuju diskusi asli yang sangat baik, dari mana kode di atas diadopsi, klik di sini.
Sebagai Catatan Terakhir…
Pantas untuk mengecek artikel ini, yang mencantumkan 10 kiat agar grafik R Anda tampil sebaik mungkin!
Juga, jika Anda ingin tahu lebih banyak tentang visualisasi data, Anda bisa mempertimbangkan untuk melihat kursus interaktif DataCamp tentang visualisasi data dengan ggvis, yang diberikan oleh Garrett Grolemund, penulis Hands on Programming with R, serta Data Science with R.
Atau mungkin kursus kami tentang pelaporan dengan R Markdown bisa menarik minat Anda!
