使用 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()
我正在尝试绘制一个图表,其中 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()