簡體   English   中英

如何 plot 月度數據在 x 軸月份和年份 R 工作室

[英]How to plot monthly data having in the x-axis months and Years R studio

我有一個 dataframe ,其中第 1 列是月,第 2 列是年,第 3 列是降水值。 我想 plot 每個月和每個年的降水值。 我的數據從 1961 年 1 月到 2019 年 2 月。 這是我的數據:

在此處輸入圖像描述 如果我使用這個: plot(YearAn,PPMensual,type="l",col="red",xlab="años", ylab="PP media anual")

我明白了:

在此處輸入圖像描述

這是錯誤的,因為它將所有月度值放在每一年,我正在尋找的是一個看起來像“JAN-1961.FEB1961....直到 FEB-2019”的 x 軸

可以使用ggplot / tidyverse包輕松完成。

首先讓我們加載包( ggplottidyverse的一部分)並創建一個示例數據:

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))

現在我們可以 plot 數據( df ):

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

在此處輸入圖像描述

使用lubridateggplot2但沒有分組:

設置

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")

圖像

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM