Dataset saya kurang lebih terlihat seperti ini:

TRIAL   PARTICIPANT    KEY_PRESSED
1       1              Left
2       1              Right
3       1              Left
4       1              Left
1       2              Right
2       2              Right
3       2              Left
4       2              Left
...     ...            ...

Apa yang saya coba lakukan adalah memplot, untuk setiap peserta, histogram horizontal yang menunjukkan tombol mana yang mereka tekan di setiap percobaan, tetapi menjaga urutan percobaan (dari 1 hingga 4) untuk setiap peserta Sejauh ini saya sudah mencoba melakukan ini dengan kode berikut:

ggplot(data = data_resp, aes(x = PARTICIPANT, y = TRIAL, fill=KEY_PRESSED))+
  geom_bar(stat='identity')+ coord_flip()

Yang menghasilkan plot berikut: Tombol Histogram1 ditekan

Seperti yang Anda lihat, ggplot mengidentifikasi dua nilai KEY_PRESSED (Left dan Right) dan memplotnya secara terpisah di setiap nampan.

Yang saya butuhkan adalah memplot setiap KEY_PRESSEDdalam urutan di mana setiap peserta menekan tombol, untuk mendapatkan sesuatu yang kurang lebih akan terlihat seperti ini: Tombol histogram2 ditekan

1
Mardock 13 Maret 2020, 21:40

1 menjawab

Jawaban Terbaik

Beralih ke geom_tile akan berhasil. Coba ini:

library(ggplot2)

set.seed(42)

data_resp <- data.frame(
  PARTICIPANT = rep(c(1, 2, 3, 4), each = 10),
  TRIAL = rep(c(1:10), 4),
  KEY_PRESSED = sample(c("Left", "Right"), 4 * 10, rep = TRUE)
) 

ggplot(data = data_resp, aes(x = PARTICIPANT, y = TRIAL, fill=KEY_PRESSED))+
  geom_tile(color = "white") + coord_flip()

Dibuat pada 13-03-2020 oleh paket reprex (v0.3.0)

2
stefan 13 Maret 2020, 19:05