【问题标题】:Plotting horizontal 'stacked' histogram with categorical (binary) values用分类(二进制)值绘制水平“堆叠”直方图
【发布时间】:2020-03-13 18:40:34
【问题描述】:

我的数据集或多或少是这样的:

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 的两个值(LeftRight)并将它们分别绘制在每个 bin 上。

我需要按每个参与者按下键的顺序绘制每个KEY_PRESSED,以获得或多或少看起来像这样的东西:

【问题讨论】:

  • 你用“直方图”这个词把我绊倒了。根据您的描述,我认为这不是您想要的情节类型。您可能需要使用geom_tile()
  • 你是对的@OTStats。我不知道geom_tile() 选项。谢谢!

标签: r ggplot2 histogram


【解决方案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()

reprex package (v0.3.0) 于 2020 年 3 月 13 日创建

【讨论】:

    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 2014-03-12
    • 2016-10-08
    • 2011-12-08
    • 2011-01-25
    • 2017-08-21
    • 1970-01-01
    • 2022-08-10
    相关资源
    最近更新 更多