我绘制了与我从cut获得的一系列因素相关的值:
a b
1 (25,30] 10
2 (30,35] 313
3 (35,40] 904
4 (40,45] 809
5 (45,50] 608
6 (50,55] 514
7 (55,60] 227
8 (60,65] 323
9 (65,70] 23
10 (70,75] 5
11 (75,80] 1
我将其绘制成:
plt_tmp = barplot(agg$b)
axis(1, agg$a, at=plt_tmp,las=2)
这没关系,但实际上是水平(即levels(agg$a)
):
[1] "(0,5]" "(5,10]" "(10,15]" "(15,20]" "(20,25]" "(25,30]" "(30,35]" "(35,40]" "(40,45]"
[10] "(45,50]" "(50,55]" "(55,60]" "(60,65]" "(65,70]" "(70,75]" "(75,80]" "(80,85]" "(85,90]"
[19] "(90,95]" "(95,100]"
我希望我可以将所有这些图表(包括缺失的图表)绘制为0值。我该怎么做呢?非常感谢任何帮助!
答案 0 :(得分:1)
您需要merge
所有levels
支持您的基础数据,然后将该数据传递给barplot
。有一个简化的例子:
agg <- data.frame(a=factor(c(1,2,4), levels=1:5), b=c(10,1,20))
with(merge(agg, list(a=levels(agg$a)), all=TRUE), barplot(b, names.arg=a) )
答案 1 :(得分:1)
使用包ggplot2作为条形图。使用比例选项,您可以定义是否绘制未使用的水平:
_bitlyToken