2013-02-24 66 views
0

我有这个数据文件:创建一个叠加柱状图

A 
    169 
    164 
    164 
    102 
    150 
    100 
    145 
B 
    145 
    107 
    115 
    120 
    140 

我想创建一个叠加柱状图出来。我想设置一个范围(比如说100到170),为X轴设置垃圾箱宽度(比如10),并且它会计算每个垃圾箱中的垃圾箱数量(例如140到149会在A中有1个) B中为2),并使用小节在Y轴上绘制计数。 A计数和B计数的着色(或孵化或其他)会有所不同。 我试着看着gnuplot的直方图演示,它在某些情况下确实看起来类似,但我无法弄清楚如何使它工作。另外随着蟒蛇+ matplotlib或R. 没有运气的数据重新排序,以类似

A B 
169 145 
164 107 
164 115 
102 120 
150 140 
100 
145 

如果需要的话是没有问题的。

+2

你有什么试过?你能做出一个可重复的例子吗? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – 2013-02-24 11:17:47

+0

那么最接近我做类似的东西是玩gnuplot直方图的例子。在那里似乎数据格式是花费已经计算,这是我需要给它这样的事情: 100-109 110-119 etc .. 4 2 etc ... 但在这种情况下,我可以做在Python中计数(例如)。我有点在寻找一个简单的解决方案。如果您熟悉GMT,与pshistogram命令类似,仅支持2个或更多数据集。 – Michael 2013-02-24 11:31:22

回答

7

这是很容易使R中使用哈德利韦翰的ggplot2封装堆叠柱状图:

library(ggplot2) 
h <- data.frame(var=sample(letters[1:2], 100, TRUE), 
       value=rnorm(100, 0, 10)) 

ggplot(aes(x=value, color=var), data=h) + stat_bin(binwidth=5) 

卸下color=位将产生一个简单的柱状图。

+0

另外,尝试使用'fill'而不是'colour'。 – driu 2013-02-24 12:36:13

+0

+1解释OP。 – 2013-02-24 13:03:34