使用数字和非数字变量在R中绘图

时间:2016-02-16 16:12:00

标签: r plot

编辑:THIS是我希望我的条形图看起来像 - 我设法在JMP上做到了,我希望在R中帮助它。谢谢!

我正在尝试在R上创建一个图。有两个感兴趣的变量(列):“TrialType”和“SMTscenes.RESP” - TrialType的值是“旧”或“新”,而SMT~' s值为“1”,“2”,“3”,“4”或“r”。这是正确的,“r”不是5,这使得这有点令人沮丧。

hist(c(df$TrialType, df$SMTscenes.RESP))

是我到目前为止所尝试过的,它给了我this histogram,它没有显示“旧”和“新”之间的区别 - 或者如果有的话,对我来说并不是那么清楚。

根据其他人的建议(之前),我已经完成了:

table(c(df$SMTscenes.RESP, df$TrialType))

输出:

1 2 3 4 5 80 150 25 17 16

现在以前的直方图形式是有道理的 - 但这不是我想要的。

如果我能提供其他信息/数据,请告诉我。如果是这样,请告诉我如何上传.csv文件。

提前致谢!

2 个答案:

答案 0 :(得分:1)

这是一个很好的起点。您只需要立即自定义外观:

scene1 <- c(rep(x = c("new"), 10), rep(x = c("old"), 2))
scene2 <- c(rep(x = c("new"), 60), rep(x = c("old"), 20))
scene3 <- c(rep(x = c("new"), 5), rep(x = c("old"), 20))
scene4 <- c(rep(x = c("new"), 2), rep(x = c("old"), 18))
sceneR <- c(rep(x = c("new"), 0), rep(x = c("old"), 18))

TrialType <- c(
  rep("1", length(scene1)), 
  rep("2", length(scene2)), 
  rep("3", length(scene3)), 
  rep("4", length(scene4)), 
  rep("r", length(sceneR)))

SMTscenes.RESP <- c(
  scene1,
  scene2,
  scene3,
  scene4,
  sceneR
)

df <- data.frame(TrialType, SMTscenes.RESP)

library(ggplot2)

ggplot(data = df, aes(SMTscenes.RESP)) +
  geom_bar() +
  facet_grid(. ~ TrialType)

Plot

答案 1 :(得分:0)

首先,你真的需要改进你的问题。

然后,您可以借助两个软件包实现您的目标:data.tableggplot2

# create dummy data (next time, provide some, please!)
set.seed(1)
a <- data.frame(scenes= sample(c("1","2","3","4","r"),20,TRUE),
                type=sample(c("New","Old"),20, TRUE))

# load packages
library(data.table)
library(ggplot2)

# convert data frame to data table
setDT(a)

# generate counts:
b <- a[, .N, by=.(scenes, type)]

# generate plot:
ggplot(b, aes(x=type, y=N))+
     geom_bar(stat = "identity")+
     facet_wrap(facets = "scenes")
数据表调用中的

.N创建一个带有计数的新变量。 by=定义了您想要的分组。