首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中有无因子的叠加条形图?

R中有无因子的叠加条形图?
EN

Stack Overflow用户
提问于 2015-04-21 02:41:48
回答 1查看 96关注 0票数 0

以下是我的数据的一个随机片段:

new_bic

代码语言:javascript
复制
            time  electrode     amps
2867    11.22972     A1_61 0.03181021
2868    11.23012     A1_73 0.04101065
2869    11.23024     A1_45 0.02053718
2870    11.23036     A1_47 0.13970933
2871    11.23036     A1_32 0.03532112
2872    11.23044     A1_81 0.03758630
2873    11.23044     A1_54 0.02858271
2874    11.23056     A1_76 0.08517757
2875    11.23064     A1_77 0.05597946
2876    11.23064     A1_56 0.03700752
2877    11.23068     A1_36 0.02002140
2878    11.23072     A1_21 0.12558076
2879    11.23076     A1_44 0.02107521
2880    11.23076     A1_68 0.09281007
2881    11.23084     A1_31 0.01390223
2882    11.23088     A1_66 0.02775229
2883    11.23096     A1_64 0.02810385
2884    11.23100     A1_46 0.01288512
2885    11.23104     A1_87 0.03736150
2886    11.23104     A1_34 0.27207340
2887    11.23112     A1_84 0.03999399
2888    11.23112     A1_63 0.02099964

这是我用来分类电极事件的代码(即每个电极有多少个安培记录)。使用这些数据可能很难看到,但电极实际上在整个数据集的不同时间点上多次出现。

代码语言:javascript
复制
new_table <- within(new_bic, 
                electrode <- factor(electrode,
                                    levels=names(sort(table(electrode),
                                                      decreasing=F))))

pp <- ggplot(new_table,aes(x=electrode))+geom_bar() + theme(axis.text.x=element_blank(),axis.ticks.x=element_blank()) +
 ylab("Firing Count") + xlab("Individual Electrodes") +ggtitle("Electrode Firing Count")

因此,我制作了一个带有因素数据“电极”的new_table,它可以很容易地按递增顺序绘制成条形图。结果真的很好。然而,我想要包括另一段数据,并将其堆叠在相应的条形上(这是每个电极)。我想要的数据是每个电极的峰值计数。

这就是我陷入困境的地方,我的问题是,这可能会在未来为我服务:是否有可能处理同一数据框架中的因素和非因素,并使用这些信息来绘制分类数据?我不确定这将如何工作,因为非因素项目的长度(例如,我在上面的new_table中的电极计数)。

我想在当前的条形图上叠加每个电极的“峰值计数”,这应该是每个电极的int值。一旦得到这些值,我就不知道该把它们放在哪里,以便在绘图中使用它们,但大致上是这样的:

代码语言:javascript
复制
for (elec in unique(new_bic$electrode))  
{
new_data <- new_bic[new_bic$electrode == elec,]
# remember to count the rows, because all we really want is a spike          count
peak_count <- nrow(findpeaks(new_data$amps))
}

任何帮助都会很好。

EN

回答 1

Stack Overflow用户

发布于 2015-04-21 02:56:17

将这些数据汇总为三列的数据,第一列为electrode,第二列为总出现次数,第三列为“总计”因子。

然后创建一个类似的电极和峰计数的数据框架,以及“峰”的因子。

那就把他们绑起来。然后绘制叠加直方图。

数据应该如下所示:

代码语言:javascript
复制
e.dat <- data.frame(electrode = c("e1", "e2", "e1", "e2"),
                   value = c(5,6,2,3),
                   type = c("total", "total", "peak", "peak"))

然后情节:

代码语言:javascript
复制
ggplot(e.dat, aes(x=electrode, y=value, fill=type)) + geom_bar(stat="identity")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29761936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档