必须有一种不太笨拙的方法来汇总条形图中的平均值。我期望填充返回所有计数的均值。查看MWE,包括变通方法。
# Some data
Machine<-c( "A", "B", "B", "B", "B", "C","D", "E", "F", "G", "H", "I", "J", "K", "G","H", "G")
Efficiency<-c(93.3, 95.0, 95.0, 99.1, 84.1, 95.8, 91.2, 82.9, 73.1, 93.7, 86.6, 68.1, 78.5, 68.5, 86.6, 90.0, 97.3)
gt<-data.frame(Machine, Efficiency)
# aggregate(Efficiency~Machine, data=gt, FUN = mean)
ggplot(gt, aes(x=Machine, fill = Efficiency)) + geom_bar()
# This is not what I expected so...
library(dplyr)
gt2<-gt %>% group_by(Machine) %>% mutate(mean(Efficiency))
names(gt2)<-c("Machine", "Efficiency", "Mean_Efficiency")
ggplot(gt2, aes(x=Machine, fill = Mean_Efficiency)) + geom_bar(stat = "count")
# This is what I want (and mistakenly expected)
rm(gt,gt2, Machine, Efficiency) # Tidy up and thanks for running this
如果没有美丽的东西出现,我只需要克服它!
安德鲁
您在绘图前计算均值的方法是绝对正确的。 fill
不会为您这样做。但是,无需始终设置名称,您的代码可以更简洁。 (;
library(ggplot2)
library(dplyr)
# Some data
gt <- data.frame(
Machine = c( "A", "B", "B", "B", "B", "C","D", "E", "F", "G", "H", "I", "J", "K", "G","H", "G"),
Efficiency = c(93.3, 95.0, 95.0, 99.1, 84.1, 95.8, 91.2, 82.9, 73.1, 93.7, 86.6, 68.1, 78.5, 68.5, 86.6, 90.0, 97.3)
)
# aggregate(Efficiency~Machine, data=gt, FUN = mean)
gt <- gt %>%
group_by(Machine) %>%
mutate(Mean_Efficiency = mean(Efficiency)) %>%
ungroup()
ggplot(gt, aes(x = Machine, fill = Mean_Efficiency)) +
geom_bar()