有没有人知道是否可以从ggplot中的条形图中排除零值?
我有一个包含如下比例的数据集:
X5employf prop X5employff
1 increase 0.02272727
2 increase 0.59090909 1
3 increase 0.02272727 1 and 8
4 increase 0.02272727 2
5 increase 0.34090909 3
6 increase 0.00000000 4
7 increase 0.00000000 5
8 increase 0.00000000 6
9 increase 0.00000000 6 and 7
10 increase 0.00000000 6 and 7
11 increase 0.00000000 7
12 increase 0.00000000 8
13 decrease 0.00000000
14 decrease 0.00000000 1
15 decrease 0.00000000 1 and 8
16 decrease 0.00000000 2
17 decrease 0.00000000 3
18 decrease 0.10000000 4
19 decrease 0.50000000 5
20 decrease 0.20000000 6
21 decrease 0.00000000 6 and 7
22 decrease 0.00000000 6 and 7
23 decrease 0.10000000 7
24 decrease 0.10000000 8
25 same 0.00000000
26 same 0.00000000 1
27 same 0.00000000 1 and 8
28 same 0.00000000 2
29 same 0.00000000 3
30 same 0.21052632 4
31 same 0.31578947 5
32 same 0.26315789 6
33 same 0.15789474 6 and 7
34 same 0.00000000 6 and 7
35 same 0.05263158 7
36 same 0.00000000 8
正如您在'prop'列中看到的那样,有很多零值。我正在制作一个带有“X5employf”列作为方面的刻面条形图。但由于零值,我最终在我的情节上留下了很多空白空间(见下文)。有没有办法迫使ggplot不绘制零值?它不是丢弃未使用因子的情况,因为它们不是NA值而是0。任何想法??!
答案 0 :(得分:5)
对于您的绘图,只需使用which
指定您只想使用包含非零比例的数据框的子集。这样您就不必修改原始数据帧。然后,在scales
内的facet_grid
参数中指定“free_x”,以消除分面图中的空白区域。
plot <- ggplot(df[which(df$prop>0),], aes(X5employff, prop)) +
geom_bar(aes(fill=X5employff, stat="identity")) +
facet_grid( ~ X5employf, scales="free_x") +
theme_bw()
plot
请注意,为了从Excel快速导入R,我将空白字段替换为“空白”。
答案 1 :(得分:1)
我不确定是否有办法在ggplot
中设置忽略的值。但是你可以考虑简单地将0重新编码为NA:
df[df$prop == 0] <- NA