我想问一下如何处理dplyr的ouptut,然后在ggplot中将其绘制为geom_bar
使用下面的代码将以图解形式给出,但是它没有正确的属性:
library(dplyr)
library(ggplot2)
mtcars %>% select(-cyl) %>%
group_by(gear) %>%
summarise(mean_hp = mean(hp),
median_hp = median(hp),
count = n()) %>%
gather() %>%
ggplot(aes(value)) + geom_bar() +
facet_wrap(~key, scales = "free")
答案 0 :(得分:0)
您要在此同时设置x
和y
的美观性:
mtcars %>% select(-cyl) %>%
group_by(gear) %>%
summarise(mean_hp = mean(hp),
median_hp = median(hp),
count = n()) %>%
gather() %>%
ggplot(aes(x=key, y=value)) + geom_col()
请注意,geom_col
更适合您的情况,因为geom_bar
用于直方图(条形的高度与每个组中的病例数成正比)。
您仍然可以使用构面,但是每个构面只有一个图,结果将不会那么漂亮。
再三考虑,看来您的榜样对我来说毫无意义。这会更有用吗?
mtcars %>% select(-cyl) %>%
group_by(gear) %>%
summarise(mean_hp = mean(hp),
median_hp = median(hp),
count = n()) %>%
pivot_longer(cols=c(mean_hp, median_hp)) %>%
ggplot(aes(x=name, y=value, fill=factor(gear))) +
geom_col(position = "dodge")
(此外,请尝试使用pivot_longer
和pivot_wider
代替现在已不推荐使用的gather
和spread
)