Lagi

Bagaimana cara memplot nilai tertentu dari kolom di R?


Katakanlah kita memiliki shapefile kota dengan kolom yang disebut kategori

[email protected]

kategori A B A C A A B C

Bagaimana saya bisa memplot kategori A saja dll?

Dicoba

c<-cities$category[A] plot(c)

tapi tidak benar.


Sepertinya Anda ingin mengelompokkan data Anda dan plot adalah hal sekunder. Harap diingat bahwa tidak selalu perlu membuat objek baru. Jika Anda hanya ingin memplot subset data, jauh lebih efisien untuk mengambil saran @fdetsch dan subset dalam panggilan untuk plot. Berikut adalah beberapa contoh subseting dan plotting data kelas sp menggunakan meuse dataset.

library(sp) data(meuse) koordinat(meuse) <- ~x+y str([email protected]) # subset data dan buat objek baru berdasarkan kueri kolom meuse.s1 <- meuse[meuse$soil == "1" ,] plot(meuse.s1, pch=20) # Plot di atas subset tanpa membuat objek baru plot(meuse[meuse$soil == "1" ,], pch=20)

Inilah cara Anda mengulangi setiap kelas dan memplot subset

# atur warna berdasarkan jumlah nilai meuse.col = topo.colors(nlevels(meuse$soil)) # atur plot jadi 2x2 dalam satu plot kanvas par(mfrow=c(2,2))

Dia adalah tempat Anda mendefinisikan for loop di mana "i" adalah nilai iterator untuk 1 hingga nlevel dalam variabel (mis., 1,2,3). Fungsi plot adalah mensubset setiap level faktor (yaitu, level(meuse$soil)[i]). Kolom subset tidak perlu menjadi faktor. Anda bisa menggunakan unique() untuk mengembalikan jumlah nilai unik dan beralih pada nilai itu daripada menggunakan level() dan nlevels().

Argumen tambahan dalam plot (mis.,g pch, col) adalah parameter grafis untuk jenis dan warna simbol titik. Kotak dan judul adalah fungsi plot yang memberi batas dan memberi judul pada setiap plot. Anda dapat memunculkan bantuan untuk semua parameter grafis menggunakan ?par. Saya menggunakan paste() di title() untuk membuat string "Soil class: i" untuk judul plot.

for(i in 1:nlevels(meuse$soil)) { plot(meuse[meuse$soil == level(meuse$soil)[i] ,], pch=20, col=meuse.col[i]) box( ) title(paste("Kelas tanah: ", level(meuse$tanah)[i],)) }

Saya akan menunjukkan bahwa salah satu cara untuk memahami dan mencerna contoh kode adalah dengan memecahnya dan tidak perlu melihat kode secara keseluruhan, karena dapat membingungkan. Salah satu contoh adalah cara saya memperlakukan level. Jika ada variabel yang diatur dalam satu lingkaran, Anda dapat mengaturnya secara manual (mis., i=1). Kemudian Anda dapat memisahkan kode tertentu dalam loop. Untuk memahami secara spesifik, Anda hanya dapat menjalankan perintah dan melihat apa yang mereka kembalikan.

Pertama, mari kita periksa data dan kelasnya.

str([email protected]) kelas([email protected]$tanah)

Anda akan melihat bahwa [email protected] adalah objek data.frame dengan 8 kolom numerik dan 4 kolom faktorial termasuk tanah, yang berisi 3 level (nilai unik). Sekarang kita dapat melihat apa yang sebenarnya dilakukan oleh kode tersebut.

nlevels(meuse$tanah) level(meuse$tanah) level(meuse$tanah)[i] paste("Kelas tanah: ", level(meuse$tanah)[i],)

Ini umumnya merupakan praktik yang baik karena tidak hanya membantu Anda mempelajari cara kerja kode, tetapi juga memungkinkan Anda menguji kode Anda sendiri untuk memastikan kode melakukan apa yang Anda pikirkan. Contoh yang baik adalah memastikan bahwa paksaan menghasilkan tipe objek/kelas yang dimaksud.


Tonton videonya: CARA MEMBUAT GRAFIK ANALISA SARINGAN DAN GRAFIK CBR DENGAN EXCEL (September 2021).