有谁知道是否有可能从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。有任何想法吗??!
最佳答案
对于您的绘图,只需使用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,我将空白字段替换为“blank”。
关于r - 从ggplot barplot中排除零值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17896266/