在R中:从单个输出获取多个条形图

在R中:从单个输出获取多个条形图,r,R,我有一个数据帧(100 x 4)。第一列是一组“箱”0-100,其余列是每个箱中每个事件变量的计数(0到最大事件数) 我想做的是将三列数据(2:4)中的每一列并排绘制。因为每个数据集的每个箱子中的计数几乎相同,所以尽管我使用了next=true和position=dodge,但在我创建的直方图/条形图中,数据是重叠的 我已经将第一列同时设置为数字和字符,但是结果是相同的——这些条相互重叠。(半透明密度图不起作用,因为我想要的是计数而不是分布密度) 所附代码基于R和其他文档生成了所附图表 barp

我有一个数据帧(100 x 4)。第一列是一组“箱”0-100,其余列是每个箱中每个事件变量的计数(0到最大事件数)

我想做的是将三列数据(2:4)中的每一列并排绘制。因为每个数据集的每个箱子中的计数几乎相同,所以尽管我使用了next=true和position=dodge,但在我创建的直方图/条形图中,数据是重叠的

我已经将第一列同时设置为数字和字符,但是结果是相同的——这些条相互重叠。(半透明密度图不起作用,因为我想要的是计数而不是分布密度)

所附代码基于R和其他文档生成了所附图表

barplot(BinCntDF$preT,main=NewMain_Trigger, plot=TRUE,
    xlab="sample frequency interval counts (0-100 msec bins)", 
    names.arg=BinCntDF$dT, las=0,
    ylab="bin counts", axes=TRUE, xlim=c(0,100), 
    ylim=c(0,1000), col="red") 
 geom_bar(position="dodge")
 barplot(BinCntDF$postT, beside=TRUE, add=TRUE)
 geom_bar()

目标是能够在相同轴上并排比较两个(或多个)数据集,而不重叠其他数据集。

我认为您将
条形图
ggplot2
混淆了
ggplot2
是函数
geom_bar
来自的库,与Base R附带的
barplot
不兼容

只需比较
?条形图
?几何图形条
,您就会看到
几何图形条
来自
ggplot2
库。为了达到我使用
ggplot2
库和
restrape2
后的效果

library(reshape2)
a <- melt(df, id=c("x"))
步骤1

根据您的描述,我假设您的数据大致如下:

df <- data.frame(x = 1:10, 
                 c1 = sample(0:100, replace=TRUE, size=10),
                 c2 = sample(0:50, replace=TRUE, size=10),
                 c3 = sample(0:70, replace=TRUE, size=10))
输出将如下所示

> head(a)
  x variable value
1 1       c1    62
2 2       c1    47
3 3       c1    20
4 4       c1    64
5 5       c1     4
6 6       c1    52
步骤2

关于
ggplot2
的功能和参数,网上有很多教程。我建议你用谷歌搜索,或者通过许多线程来了解

ggplot(a, aes(x=x, y=value, group=variable, fill=variable)) + 
  geom_bar(stat='identity', position='dodge')
这将为您提供以下输出:

简言之:

  • group
    对感兴趣的变量进行分组
  • stat=identity
    确保不会对数据进行额外的聚合
有这么多的箱子(100个)和组(3个),绘图看起来会很混乱,但试试这个:

set.seed(123)
myDF <- data.frame(bins=1:100, x=sample(1:100, replace=T), y=sample(1:100, replace=T), z=sample(1:100, replace=T))
myDF.m <- melt(myDF, id.vars='bins')
ggplot(myDF.m, aes(x=bins, y=value, fill=variable)) + geom_bar(stat='identity', position='dodge')

谢谢大家。从您的评论中,我同意我错误地将ggplot和geom_栏与我的数据结合使用。正如您所写的,facet和ggplot/geom_条都适用于我的数据。我将修改代码和数据结构,以两种方式绘制数据,并查看哪种可视化效果最好,然后发布结果-如果可能,则发布图表,如果不可能,则发布简单的上/下拇指。
ggplot(myDF.m, aes(x=bins, y=value, fill=variable)) + geom_bar(stat='identity') + facet_wrap(~ variable)