+-

我的数据集或多或少看起来像这样:
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
... ... ...
我想做的是为每个参与者绘制水平直方图,以显示他们在每个试验中按下的键,但是保持试验顺序(从1到4)为每个参与者到目前为止,我尝试使用以下代码进行此操作:
ggplot(data = data_resp, aes(x = PARTICIPANT, y = TRIAL, fill=KEY_PRESSED))+
geom_bar(stat='identity')+ coord_flip()
这将导致以下绘图:“ >>
如您所见,ggplot标识KEY_PRESSED的两个值(Left和Right,并分别在每个bin上绘制它们。
我需要按每个参与者按下键的顺序绘制每个KEY_PRESSED,以得到看起来或多或少像这样的东西:“ >>
我的数据集看起来或多或少是这样的:TRIAL PARTICIPANT KEY_PRESSED 1 1左2 1右3 1左4 1左1 2 ...
1
投票
投票
切换到geom_tile应该可以解决问题。试试这个:
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()