Как построить месячные данные, имеющие на оси X месяцы и годы R studio - PullRequest
0 голосов
/ 14 июля 2020

У меня есть фрейм данных, где столбец 1 - месяцы, столбец 2 - годы, а столбец 3 - значения осадков. Я хочу построить график значений осадков для КАЖДОГО месяца и КАЖДОГО года. Мои данные идут с января 1961 года по февраль 2019 года. ¿Как я могу это построить? Вот мои данные:

enter image description hereIf I use this: plot(YearAn,PPMensual,type="l",col="red",xlab="años", ylab="PP media anual")

I get this:

введите описание изображения здесь

Что неверно, потому что он помещает все ежемесячные значения в каждый год! Я ищу ось x, которая выглядит как «ЯНВАРЬ-1961, ФЕВРАЛЬ 1961 .... до ФЕВ-2019»

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Использование lubridate и ggplot2, но без группировки:

Настройка

library(lubridate) #for graphic
library(ggplot2) # for make_date()


df <- tibble(month = rep(month.name, 40),
             year = rep(c(1961:2000), each = 12),
             PP = runif(12*40) * runif(12*40) * 10) # PP data is random here

print(df, n = 20)
   month      year     PP
   <chr>     <int>  <dbl>
 1 January    1961 5.42  
 2 February   1961 0.855 
 3 March      1961 5.89  
 4 April      1961 1.37  
 5 May        1961 0.0894
 6 June       1961 2.63  
 7 July       1961 1.89  
 8 August     1961 0.148 
 9 September  1961 0.142 
10 October    1961 3.49  
11 November   1961 1.92  
12 December   1961 1.51  
13 January    1962 5.60  
14 February   1962 1.69  
15 March      1962 1.14  
16 April      1962 1.81  
17 May        1962 8.11  
18 June       1962 0.879 
19 July       1962 4.85  
20 August     1962 6.96 
# … with 460 more rows

График

df %>% 
  ggplot(aes(x = make_date(year, factor(month)), y = PP)) + 
  geom_line() +
  xlab("años")

img

0 голосов
/ 14 июля 2020

Это легко сделать с помощью пакетов ggplot / tidyverse.

Сначала загрузим пакеты (ggplot является частью tidyverse) и создадим образцы данных:

library(tidyverse)

set.seed(123)
df <- data.frame(month = rep(c(1:12), 2), 
                 year = rep(c("1961", "1962"), 
                            each = 12), 
                 ppmensual = rnorm(24, 5, 2))

Теперь мы можем построить данные (df):

df %>% 
  ggplot(aes(month, ppmensual, 
             group = year, 
             color = year)) + 
  geom_line()

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...