Carta palang adalah kaedah terbaik untuk memaparkan pemboleh ubah kategori dalam paksi-x. Graf jenis ini menunjukkan dua aspek dalam paksi-y.
- Yang pertama mengira jumlah kejadian antara kumpulan.
- Yang kedua menunjukkan statistik ringkasan (min, maksimum, purata, dan sebagainya) pemboleh ubah dalam paksi-y.
Anda akan menggunakan set data mtcars dengan mempunyai pemboleh ubah berikut:
- sil: Bilangan silinder di dalam kereta. Pemboleh ubah berangka
- am: Jenis penghantaran. 0 untuk automatik dan 1 untuk manual. Pemboleh ubah berangka
- mpg: Batu per galon. Pemboleh ubah berangka
Dalam tutorial ini, anda akan belajar
- Cara membuat Carta Bar
- Tukar warna bar
- Tukar intensiti
- Warnakan mengikut kumpulan
- Tambahkan kumpulan di bar
- Carta palang dalam peratusan
- Palang bersebelahan
- Histogram
Cara membuat Carta Bar
Untuk membuat grafik dalam R, anda boleh menggunakan ggplot perpustakaan yang membuat grafik siap untuk diterbitkan. Sintaks asas perpustakaan ini 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 objects are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
Dalam tutorial ini, anda berminat dengan objek geometri geom_bar () yang membuat carta palang.
Carta palang: kiraan
Grafik pertama anda menunjukkan kekerapan silinder dengan geom_bar (). Kod di bawah adalah sintaks paling asas.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Penjelasan Kod
- Anda meneruskan mtcars dataset ke ggplot.
- Di dalam argumen aes (), anda menambahkan paksi-x sebagai pemboleh ubah faktor (sil)
- Tanda + bermaksud anda mahu R terus membaca kodnya. Ini menjadikan kod lebih mudah dibaca dengan memecahkannya.
- Gunakan geom_bar () untuk objek geometri.
Pengeluaran:
Catatan : pastikan anda menukar pemboleh ubah menjadi faktor sebaliknya R memperlakukan pemboleh ubah sebagai angka. Lihat contoh di bawah.
Sesuaikan grafik
Empat argumen dapat dilalui untuk menyesuaikan grafik:
- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`- `alpha`: Control density of the color- `fill`: Change the color of the bar- `size`: Control the size the bar
Tukar warna bar
Anda boleh menukar warna bar. Perhatikan bahawa warna bar serupa.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Penjelasan Kod
- Warna bar dikawal oleh pemetaan aes () di dalam objek geometri (iaitu tidak di ggplot ()). Anda boleh menukar warna dengan argumen isi. Di sini, anda memilih warna karang.
Pengeluaran:
Anda boleh menggunakan kod ini:
grDevices::colors()
untuk melihat semua warna yang terdapat di R. Terdapat sekitar 650 warna.
Tukar intensiti
Anda boleh menambah atau mengurangkan intensiti warna bar
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Penjelasan Kod
- Untuk meningkatkan / mengurangkan intensiti bar, anda boleh mengubah nilai alpha. Alpha besar meningkatkan intensiti, dan alpha rendah mengurangkan intensiti. alpha berkisar antara 0 hingga 1. Jika 1, maka warnanya sama dengan palet. Sekiranya 0, warna berwarna putih. Anda memilih alpha = 0.1.
Pengeluaran:
Warnakan mengikut kumpulan
Anda boleh menukar warna bar, yang bermaksud satu warna yang berbeza untuk setiap kumpulan. Sebagai contoh, pemboleh ubah sil mempunyai tiga tahap, maka anda boleh membuat carta palang dengan tiga warna.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Penjelasan Kod
- Argumen mengisi di dalam aes () membolehkan menukar warna bar. Anda menukar warna dengan menetapkan fill = pemboleh ubah paksi-x. Dalam contoh anda, pemboleh ubah paksi-x adalah silinder; isi = faktor (sil)
Pengeluaran:
Tambahkan kumpulan di bar
Anda boleh membahagikan paksi-y berdasarkan tahap faktor yang lain. Sebagai contoh, anda boleh mengira jumlah transmisi automatik dan manual berdasarkan jenis silinder.
Anda akan meneruskan seperti berikut:
- Langkah 1: Buat kerangka data dengan set data mtcars
- Langkah 2: Labelkan pemboleh ubah am dengan penghantaran automatik secara automatik dan man untuk penghantaran manual. Tukarkan am dan sil sebagai faktor sehingga anda tidak perlu menggunakan faktor () dalam fungsi ggplot ().
- Langkah 3: Petak carta palang untuk mengira jumlah penghantaran mengikut silinder
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Anda telah menyediakan set data, anda boleh memplot grafik;
# Langkah 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Penjelasan Kod
- Ggpplot () mengandungi data set data dan aes ().
- Di aes () anda memasukkan paksi-x pemboleh ubah dan pemboleh ubah mana yang diperlukan untuk mengisi bar (iaitu am)
- geom_bar (): Buat carta palang
Pengeluaran:
Pemetaan akan mengisi bar dengan dua warna, satu untuk setiap peringkat. Tidak mudah mengubah kumpulan dengan memilih pemboleh ubah faktor lain dalam set data.
Carta palang dalam peratusan
Anda dapat menggambarkan bar dalam bentuk peratusan dan bukannya jumlah mentah.
# Carta palang dalam peratusan
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Penjelasan Kod
- Gunakan kedudukan = "isi" dalam argumen geom_bar () untuk membuat grafik dengan peratusan dalam paksi-y.
Pengeluaran:
Palang bersebelahan
Sangat mudah untuk merancang carta palang dengan pemboleh ubah kumpulan berdampingan.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Penjelasan Kod
- position = position_dodge (): Secara jelas memberitahu cara mengatur bar
Pengeluaran:
Histogram
Pada bahagian kedua tutorial carta palang, anda dapat mewakili kumpulan pemboleh ubah dengan nilai dalam paksi-y.
Objektif anda adalah untuk membuat grafik dengan purata batu per galon untuk setiap jenis silinder. Untuk melukis grafik maklumat, anda akan mengikuti langkah-langkah berikut:
- Langkah 1: Buat pemboleh ubah baru dengan purata batu per galon mengikut silinder
- Langkah 2: Buat histogram asas
- Langkah 3: Tukar orientasi
- Langkah 4: Tukar warna
- Langkah 5: Tukar ukuran
- Langkah 6: Tambahkan label ke grafik
Langkah 1) Buat pemboleh ubah baru
Anda membuat bingkai data bernama data_histogram yang hanya mengembalikan batu purata per galon dengan jumlah silinder di dalam kereta. Anda memanggil pemboleh ubah baru ini sebagai mean_mpg, dan anda membulatkan min dengan dua perpuluhan.
# Langkah 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Langkah 2) Buat histogram asas
Anda boleh merancang histogram. Ia tidak bersedia untuk berkomunikasi untuk disampaikan kepada pelanggan tetapi memberi kita intuisi mengenai trend.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Penjelasan Kod
- The aes () kini mempunyai dua pemboleh ubah. Pemboleh ubah cyl merujuk kepada paksi-x, dan mean_mpg adalah paksi-y.
- Anda perlu meneruskan argumen stat = "identiti" untuk merujuk pemboleh ubah dalam paksi-y sebagai nilai berangka. geom_bar menggunakan stat = "bin" sebagai nilai lalai.
Pengeluaran:
Langkah 3) Tukar orientasi
Anda menukar orientasi grafik dari menegak ke mendatar.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Penjelasan Kod
- Anda boleh mengawal orientasi grafik dengan coord_flip ().
Pengeluaran:
Langkah 4) Tukar warna
Anda boleh membezakan warna bar mengikut tahap faktor pemboleh ubah paksi-x.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Penjelasan Kod
- Anda boleh memetakan grafik mengikut kumpulan dengan pemetaan isi = sil. R menjaga warna secara automatik berdasarkan tahap pemboleh ubah sil
Pengeluaran:
Langkah 5) Tukar ukuran
Untuk menjadikan grafik kelihatan lebih cantik, anda mengurangkan lebar bar.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Penjelasan Kod
- Argumen lebar di dalam geom_bar () mengawal ukuran bar. Nilai yang lebih besar meningkatkan lebar.
- Perhatikan, anda menyimpan grafik dalam grafik pemboleh ubah. Anda melakukannya kerana langkah seterusnya tidak akan mengubah kod grafik pemboleh ubah. Ini meningkatkan keterbacaan kod.
Pengeluaran:
Langkah 6) Tambahkan label ke grafik
Langkah terakhir terdiri untuk menambahkan nilai pemboleh ubah mean_mpg dalam label.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Penjelasan Kod
- Fungsi geom_text () berguna untuk mengawal estetika teks.
- label =: Tambahkan label di dalam bar
- mean_mpg: Gunakan pemboleh ubah mean_mpg untuk label
- hjust mengawal lokasi label. Nilai tertutup hingga 1 memaparkan label di bahagian atas bar, dan nilai yang lebih tinggi membawa label ke bahagian bawah. Sekiranya orientasi grafik menegak, ubah hjust ke vjust.
- color = "white": Tukar warna teks. Di sini anda menggunakan warna putih.
- size = 3: Tetapkan ukuran teks.
Pengeluaran:
Ringkasan
Carta palang berguna apabila paksi-x adalah pemboleh ubah kategori. Paksi-y boleh berupa kiraan atau statistik ringkasan. Jadual di bawah meringkaskan cara mengawal carta bar dengan ggplot2:
Objektif |
kod |
---|---|
Kira |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Kira dengan warna isian yang berbeza |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Kira dengan kumpulan, disusun |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Kira dengan kumpulan, berdampingan |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Kira dengan kumpulan, disusun dalam% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Nilai |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |