Bagaimana saya bisa menghasilkan plot yang menunjukkan sudut arah dari poin saya? [Tutup]

8

Saya ingin bisa membandingkan sudut tetangga dalam kawanan kuda nil. Saya punya data untuk koordinat x dan y dan sudut yang mereka hadapi (menggunakan imageJ , sudut antara -180 dan 180 dengan 0 menjadi garis lurus horizontal di tengah gambar). Saya telah merencanakan fungsi untuk melihat apakah kuda nil saya 'suka' untuk mengorientasikan diri mereka terhadap individu-individu yang ada di dekatnya, tetapi saya ingin sekali dapat menghitung representasi visual dari orientasi mereka dalam kawanan yang digunakan .g(r)R

Bantuan apa pun akan sangat dihargai, saya belum benar-benar Rmelek!

Cara
sumber
1
Lihatlah paket bundar. Ini memiliki beberapa plot yang dapat membantu Anda, dan juga beberapa fungsi yang bagus.
Peter Flom
1
Saya akan tertarik mempelajari lebih lanjut tentang apa "g(r)"mewakili dan bagaimana ia dihitung.
whuber
1
Pertanyaan ini tampaknya di luar topik karena ini tentang pengkodean dalam R dan bukan statistik.
John
Harap edit pertanyaan Anda untuk lebih menekankan aspek statistik / vizualisasi pertanyaan Anda di atas aspek 'baris kode R apa yang harus saya ketik'. Bisakah Anda juga menjelaskan apagApakah saya mohon
Glen_b -Reinstate Monica
Pertanyaannya tidak begitu jelas, "Bagaimana saya bisa menghasilkan plot yang menunjukkan sudut arah poin saya?" tetapi ini di luar topik karena ini tentang 'produksi'. Jika kita hanya mengubah judul menjadi "Bagaimana saya harus merencanakan sudut arah poin saya?" maka pertanyaan ini dapat dilepaskan dari tag penutup dan terbuka bagi orang-orang untuk memberikan pemikiran mereka tentang merencanakan titik data sambil memasukkan informasi terarah.
Sextus Empiricus

Jawaban:

14

Kedengarannya seperti data terdiri dari vektor (x, y) koordinat dan sudut. Mari kita simulasikan beberapa sebagai contoh:

set.seed(43)
x <- rnorm(50)
y <- rnorm(50)
angles <- runif(50, min=-pi, max=pi)

Plot lokasi:

plot(x, y, pch=19, cex=0.8, col="Blue")

Tambahkan panah untuk menunjukkan orientasi pada titik-titik ini:

length <- 0.2
arrows(x, y, x1=x+length*cos(angles), y1=y+length*sin(angles), 
       length=0.05, col="Gray")

Kuda nil

whuber
sumber
1
Ini sangat membantu terima kasih banyak! Saya sedang bekerja mengadaptasinya untuk data saya dan saya berharap untuk melihat output plot :) Terima kasih lagi!
Cara
Kode harus dikoreksi karena R selalu bekerja dengan sudut di radian: cos(angles*pi/180) dan sin(angles*pi/180) dengan angles antara 0 dan 360.
DJack
@Jack Terima kasih telah menunjukkan itu. Untungnya dalam kasus ini tidak banyak bedanya (dan karena itu saya tidak perlu menghitung ulang contohnya), karena distribusi yang seragam menyala[-180,180] radian tidak jauh berbeda dari distribusi seragam [-π,π] radian (modulo 2π), tetapi penting untuk mendapatkan detail yang benar secara komputasi.
whuber
3

Untuk menambah jawaban dengan @whuber. Fungsi ms.arrowsdan my.symbolsdalam TeachingDemospaket untuk R mungkin menarik. Mereka juga akan merencanakan panah tetapi Anda dapat memberikan sudut secara langsung daripada menghitung sinus dan cosinus, itu juga membuatnya lebih mudah jika Anda ingin panah berpusat pada titik daripada berasal dari titik.

Greg Snow
sumber
Terima kasih banyak semuanya, saya akan mengirimkan ini ke penyelia saya dan kami akan melakukan semua saran Anda!
Cara