使用 ggplot 从 df 中绘制 TRUE 语句的数量

Using ggplot to plot number of TRUE statements from a df

我正在尝试绘制一个图表,其中 df 列中的 TRUE 语句数。

我有一个看起来像这样的 df

Speed   Month_1
12      67
12      114
12      155
12      44
13      77
13      165
13      114
13      177
...

我想绘制一个条形图,其中 x = 速度和 y = Month_1 列中超过 100 的行数。

所以对于 X = 12,我的条形图的 Y 值为 2,对于 X = 13,我的 Y 值为 3。

我可以直接在 ggplot 中执行此操作,还是必须先创建一个新的 DF?

当然,只需过滤掉您传递给 ggplot 的数据中小于 100 的值,然后执行正常操作 geom_bar

ggplot(df[df$Month_1 >= 100, ], aes(factor(Speed))) +
  geom_bar(width = 0.5, fill = 'deepskyblue4')  +
  theme_bw(base_size = 16) +
  labs(x = 'Speed')

如果出于某种原因,您确实需要在不过滤的情况下传递完整的数据框,您可以用完全透明的颜色填充 < 100 个值:

ggplot(df, aes(factor(Speed), fill = Month_1 > 100)) +
  geom_bar(width = 0.5)  +
  theme_bw(base_size = 16) +
  scale_fill_manual(values = c('#00000000', 'deepskyblue4')) +
  labs(x = 'Speed') +
  theme(legend.position = 'none')

您可以使用 dplyr 过滤您的数据框,然后使用 ggplot 绘制它。

library(tidyverse)

df <- tibble(Speed = c(12, 12, 12, 12, 13, 13, 13, 13),
             Month_1 = c(67, 114, 155, 44, 77, 165, 114, 177))

df %>% filter(Month_1 > 100) %>% 
  ggplot(aes(x = Speed)) + geom_bar()