Гистограмма с несколькими переменными в R

#r

#r

Вопрос:

Я работаю над набором данных о рейсах в R. Я хотел бы отобразить приведенные ниже данные на одной гистограмме.

 flight_month early_arrival delayed_arrival ealry_departure
1        April     -15.58233        42.73958       -5.058515
2       August     -17.16566        39.51294       -4.676996
3     December     -14.02251        39.72725       -4.533339
4     February     -15.85862        33.68921       -4.912044
5      January     -15.09903        34.47749       -4.906270
6         July     -16.79175        53.95152       -4.562090
  delay_departure
1        44.05532
2        37.22452
3        37.06027
4        35.17606
5        35.24179
6        48.54883
 

аналогично этой, но со всеми отображаемыми переменными.

гистограмма

 average<-read.csv('Average.csv')
ggplot(average,aes(x=flight_month,y=delayed_arrival)) 
  geom_bar(stat="identity")
 

это то, что я пробовал, но таким образом я могу видеть только delay_arrival на моей оси y, я хочу видеть все четыре переменные на оси y. И месяцы на оси x.

Комментарии:

1. Попробуйте ggplot из Tidyverse . Кроме того, если вы покажете нам, что вы сделали / попробовали, чтобы мы могли помочь в устранении неполадок, вы, вероятно, получите дополнительную помощь.

2. Что вы хотите от своих осей x и y?

3. Я обновил свой пост

Ответ №1:

 library(ggplot2)
library(dplyr)
library(tibble)
library(tidyr)
 

Вот пример графика:

 df %>% ggplot(aes(flight_month, group = 1))   
  geom_bar(aes(y = early_arrival), stat = "identity", fill = "blue") 
  geom_bar(aes(y = delayed_arrival), stat = "identity", fill = "red") 
 

Или вы можете изменить свои данные:

 df %>% tidyr::gather("metrics", "value", -flight_month) %>% 
  ggplot(aes(flight_month, value, group= metrics, fill = metrics))  
           geom_bar(stat = "identity", width=.5, position = "dodge")
 

Вот пример новых данных:

 # A tibble: 24 x 3
   flight_month metrics         value
   <chr>        <chr>           <dbl>
 1 April        early_arrival   -15.6
 2 August       early_arrival   -17.2
 3 December     early_arrival   -14.0
 4 February     early_arrival   -15.9
 5 January      early_arrival   -15.1
 6 July         early_arrival   -16.8
 7 April        delayed_arrival  42.7
 8 August       delayed_arrival  39.5
 9 December     delayed_arrival  39.7
10 February     delayed_arrival  33.7
# ... with 14 more rows
 

данные:

 df <- structure(list(flight_month = c("April", "August", "December", 
"February", "January", "July"), early_arrival = c(-15.58233, 
-17.16566, -14.02251, -15.85862, -15.09903, -16.79175), delayed_arrival = c(42.73958, 
39.51294, 39.72725, 33.68921, 34.47749, 53.95152), early_departure = c(-5.058515, 
-4.676996, -4.533339, -4.912044, -4.90627, -4.56209), delay_departure = c(44.05532, 
37.22452, 37.06027, 35.17606, 35.24179, 48.54883)), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))
 

Комментарии:

1. помните, что библиотека называется «ggplot2», а команда — «ggplot»

2. спасибо за ваш код, он работает отлично. Есть ли способ расположить их рядом, а не сложить?

3. Попробуйте выполнить 2-ю часть кода. Возможно, вы захотите реструктурировать свои данные. У вас будет 3 столбца, компонент времени, показатели и значения.