在条形图中强制使用计数为0的标签

时间:2019-04-10 23:21:25

标签: r ggplot2

我正在为一个由十个记录组成的摘要data.frame绘制条形图。每个记录都列出一个大小和该大小的频率。一个尺寸等级的频率为零。

但是,当运行时,零计数类消失了,而不是全部十个类,图中只有九个出现。

我尝试了as.numeric,但是它呈现为小数,并且不反映因子值。

我正在使用的ggpot2代码是:

plt1 <- ggplot(szt, aes(x = as.factor(size, Freq))) + 
     geom_bar(stat = "identity") 

plt1 + xlab("Debitage Size, 5 mm class") + ylab("Frequency") + 
      ggtitle("Debitage Size Distribution by 5 mm class")

数据为:

   size Freq
1     1  196
2     2  261
3     3   77
4     4   26
5     5   14
6     6    9
7     7    4
8     8    0
9     9    1
10   10    2

> str(szt)
'data.frame':   10 obs. of  2 variables:
 $ size: Factor w/ 10 levels "1","2","3","4",..: 1 2 3 4 5 6 7 10 8 9
 $ Freq: num  196 261 77 26 14 9 4 0 1 2

如上所述,我希望沿X轴看到所有十个因素。但是ggplot会删除零计数元素。

1 个答案:

答案 0 :(得分:0)

@john欢迎来到SO。请参阅here,以了解如何创建最小的可复制示例。 尝试以下操作,

library(ggplot2)
df2<- data.frame(size = as.factor( c(1:10)), 
                     freq=c(196,200,77,26,14,9,4,0,1,2)
                 )
df2

R> df2
   size freq
1     1  196
2     2  200
3     3   77
4     4   26
5     5   14
6     6    9
7     7    4
8     8    0
9     9    1
10   10    2

ggplot(df2, aes(x = size, y=freq)) + 
  geom_bar(stat = "identity")

plot1