Bonjour à tous!

J'aimerais trouver une façon simple et reproductible de représenter graphiquement des séries temporelles.
J'ai extrait les variables d'un fichier, pour en faire un tableau à 2 colonnes, dates et températures (class factor pour le moment).
Ce que je souhaite faire est une représentation graphique simple que mes températures en ordonnée et de mes dates en abscisse.
J'aimerais aussi pouvoir sélectionner la fourchette de temps sur laquelle je représente ma série temporelle ensuite.
J'ai essayé de représenter tout cela dans mon script, mais le résultat ne convient pas.
J'ai essayé plusieurs combinaisons avec/sans changer le format des variables (les dates en format date ou factor) mais il y a toujours un soucis dans mon plot final.
Je sens que je touche au but et que cela doit être quelque chose de relativement simple, mais je bloque un petit peu...
Pouvez-vous m'aiguiller pour trouver ce qui cloche ?
Merci beaucoup !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 
#Repertoire de travail
setwd("XXX")
 
#Packages nécessaires
library(ncdf4)
library(stringr)
library(Rcpp)
library(plyr)
library(lubridate)
library(ggplot2)
 
#Ouverture du fichier
nc <-nc_open("NOAA_SST_2017_Corse.nc")
 
#Variables
lon <- ncvar_get(nc, "lon")
dim(lon)
[1] 5
lat <- ncvar_get(nc, "lat")
dim(lat)
[1] 337
time1 = ncvar_get(nc, "time")
time = as_date(time1,tz="UTC",origin = "1800-01-01")
dim(time)
[1] 365
head(time)
[1] "2017-01-01" "2017-01-02" "2017-01-03" "2017-01-04" "2017-01-05" "2017-01-06"
 
#Zoom géographique 
lonIdx <- which( lon >= 8.4 & lon <= 9.7)
latIdx <- which( lat >= 41.3 & lat <= 43.1)
levelIdx <- 1:length(time)
 
#Construction du dataframe
data_temp<-ncvar_get(nc, "sst")[lonIdx, latIdx, levelIdx]
indices <- expand.grid(lon[lonIdx], lat[latIdx], time[levelIdx])
df <- data.frame(cbind(indices, as.vector(data_temp)))
colnames(df)<-c("longitude","latitude","time","temperature")
 
> head(df)
  longitude latitude       time temperature
1     8.625   41.375 2017-01-01       16.33
2     8.875   41.375 2017-01-01       16.15
3     9.125   41.375 2017-01-01       15.91
4     9.375   41.375 2017-01-01       15.37
5     9.625   41.375 2017-01-01       15.00
6     8.625   41.625 2017-01-01       16.60
 
##moyenne par jour
Final1 <- tapply(df2$temperature,df2$time,mean)
Final1 = as.data.frame(Final1)
View(Final1)
colnames(Final1) = "temperature"
Final2 = as.data.frame(cbind("time"=rownames(Final1),"temperature"=Final1$temperature))
Final2
head(Final2)
> head(Final2)
        time      temperature
1 2017-01-01 15.8831814852628
2 2017-01-02 15.8099995959889
3 2017-01-03 15.8504542437467
4 2017-01-04 15.8649997711182
5 2017-01-05 15.7299998023293
6 2017-01-06  15.457726912065
 
#verification du type de données
class(Final2$temperature)
[1] "factor"
class(Final2$time)
[1] "factor"
 
#modification de l'intitulé des variables
names(Final2)[1]<-"jour"
names(Final2)[2]<-"temp"
 
#changement du type de données (vers type chaine de caractères)
Final2$temp<-as.character(Final2$temp)
 
##Final2$temp<-sub(" ","",Final2$temp)
##changement du type de données (vers type numérique)
Final2$temp<-as.numeric(Final2$temp)
class(Final2$temp)
[1] "numeric"
 
class(Final2$jour)
[1] "factor"
Ci-dessous le code pour mon 1e test de représentation graphique de la série temporelle, j'ai beau faire varier frequency, je n'obtiens pas ce que je veux, exemple ci-dessous :

Nom : test_plot_1.jpg
Affichages : 589
Taille : 53,4 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#test plot série temporelle 1
ts.stt<-ts(data = Final2$temp, start=c(2017,04), frequency = 365.25)
 
#graphique
library(itsmr)
windows()
plotc(ts.stt)
Enfin ci-dessous, un autre plot que j'ai testé, idem je ne suis pas satisfaite évidemment par l'axe des abscisses et j'aimerais trouver un moyen de sélectionner une fenêtre temporelle (par exemple de la date 2017-04-01 à la date 2017-04-30).



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
plot(Final2$jour,Final2$temp)
Nom : test_plot_2.jpg
Affichages : 553
Taille : 60,6 Ko