ggplot条形图在一个图中显示多个值作为标签

时间:2019-06-11 07:17:33

标签: r ggplot2

我在图形中得到多个值。如下表所示,机器1具有3个不同的机器ID。因此,一栏显示一栏下显示3机器ID的值。

FDP_2019 <- data.frame(
Machine_ID = c(“M11”, “M21”, “M31”, “M41”, “M12”, “M22”, “M32”, “M42”, “M13”, “M14”, “M23”, “M43”),
Model_Name = c(“Machine 1”, “Machine 2”, “Machine 3”, “Machine 4”, “Machine 1”, “Machine 2”, “Machine 3”, “Machine 4”, “Machine 1”, “Machine 1”, “Machine 2”, “Machine 4” ),
Fuel_Count = c(12,34,23,56,78,45,67,99,12,3,0,122),
Pressure_Count = c(56,748,33,787,457,345,565,445,34,23,45,799),
Water_Count = c(768,33,0,8,45,23,56,77,85,100,150,133))


new_FDP <- FDP_2019 %>% 
  gather(Alert, Count, `Fuel Count`:`Water Count`)  # I have combine all variables into one column i.e “Alert” instead of 3 separate column as in FDP_2019

graph <- new_FDP %>% 
ggplot(aes(Alert, Count, fill = Alert)) + geom_bar(stat = "identity", size = 3) + 
coord_flip() + 
geom_text(aes(label = Count)) + 
theme(legend.position = "none") + 
facet_wrap(~ `Model Name`, nrow = 4 )

enter image description here

我想要所有值的总和。怎么做?

1 个答案:

答案 0 :(得分:0)

尝试这样:

FDP_2019 <- data.frame(
  Machine_ID = c("M11", "M21", "M31", "M41", "M12", "M22", "M32", "M42", "M13", "M14", "M23", "M43"),
  Model_Name = c("Machine 1", "Machine 2", "Machine 3", "Machine 4", "Machine 1", "Machine 2", "Machine 3", "Machine 4", "Machine 1", "Machine 1", "Machine 2", "Machine 4" ),
  Fuel_Count = c(12,34,23,56,78,45,67,99,12,3,0,122),
  Pressure_Count = c(56,748,33,787,457,345,565,445,34,23,45,799),
  Water_Count = c(768,33,0,8,45,23,56,77,85,100,150,133))


new_FDP <- FDP_2019 %>% 
  gather(Alert, Count, Fuel_Count:Water_Count) %>%
  select(-Machine_ID) %>% 
  group_by(Alert,Model_Name) %>% 
  summarise(Sum=sum(Count))

new_FDP %>% 
  ggplot(aes(Alert, Sum, fill = Alert)) + geom_bar(stat = "identity", size = 3) + 
  coord_flip() + 
  geom_text(aes(label = Sum)) + 
  theme(legend.position = "none") + 
  facet_wrap(~ `Model_Name`, nrow = 4 )