使用分类(二进制)值绘制水平 'stacked' 直方图
Plotting horizontal 'stacked' histogram with categorical (binary) values
我的数据集大致如下所示:
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
,以获得或多或少看起来像这样的东西:
切换到 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()
由 reprex package (v0.3.0)
于 2020 年 3 月 13 日创建
我的数据集大致如下所示:
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
,以获得或多或少看起来像这样的东西:
切换到 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()
由 reprex package (v0.3.0)
于 2020 年 3 月 13 日创建