#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 столбца, компонент времени, показатели и значения.