2017-08-07 2 views
-1

Besoin d'aide pour r dans les données de séries temporelles. Le Y est la température et X est la date (maintenant au format% d-% m-% y) et nécessite un tracé comme:Tracer les données de séries temporelles dans r pour un mois par mois

temp data in month wise along with a box plot

J'ai essayé:

univariare température

temperature = ts(r$temp, frequency = 12, start = 2011) plot(temperature, xaxt = "n") tsp = attributes(temperature)$tsp dates 
= seq(as.Date("2011-01-01"), by = "month", along = temperature) axis(1, at = seq(tsp[1], tsp[2], along = temperature), labels = format(dates, "%m-%y")) 

ggplot

gg2=ggplot(r,aes(mnth,temp)) + geom_line() 
windows() 
print(gg2) 

mais le format est incorrect.

Toute aide sera vraiment appréciable !!

Merci Devi

+0

créer un bon exemple reproductible [décrit ici] (https://stackoverflow.com/questions/5963269/how-to-make-a-great -r-reproducible-example) et aussi 'dput' vos données utilisées – parth

+0

Veuillez lire [mcve]. Utilisez également ctrl-g pour insérer des graphiques dans la question (par opposition à un lien vers celle-ci). –

Répondre

0

Time Series Temperature Plot by Month

library(ggplot2) 

# Simulated temperature data 
temp <- runif(75) 

temp.avg <- vector() 

x <- 365 

for(i in 1:x){ 
    if(i <= round(.33 * x)) { 
    temp.avg[i] <- mean(sample(temp, 15, replace = TRUE)) 
    } else if (i <= round(.66 * x)) { 
    temp.avg[i] <- abs(log(mean(sample(temp, 15, replace = TRUE)))) 
    } else { 
    temp.avg[i] <- mean(sample(temp, 15, replace = TRUE)) * (i/x) + .15 
} 
} 

# Generate sequence of days in Date format "%d-%m-%y" 
from <- as.Date("01-1-11 12:00:00 EDT", "%d-%m-%y") 
to <- as.Date("31-12-11 12:00:00 EDT", "%d-%m-%y") 
times <- seq.Date(from, to, 1) 

# Put dates and temperatures into data frame 
Temperature_data <- data.frame(date = times, temp = temp.avg) 

# Plot in ggplot 
ggplot(Temperature_data, aes(date, temp)) + 
    geom_line() + 
    ylim(c(0, 1)) + 
    xlab("") + 
    ylab("Temperature") + 
    scale_x_date(date_breaks = "1 month", date_labels = "%b %y") + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) + 
    ggtitle("Temperature fluctuations in 2011") 
+0

je vous remercie beaucoup pour la réponse rapide! Juste pour ajouter l'ensemble de données que j'utilise avoir la date au format '% d-% m-% y' et temp1 alors ici, nous prenons moyenne pour temp chaque mois et le tracer pour 2011 an? Donc, dans le code donné, je devrais utiliser mon temp à l'endroit ? –

+0

Salut @DeviVijayakumar, je pense que la moyenne dont vous parlez était ma tentative de faire de fausses températures pour modéliser l'image que vous avez postée. Il était probablement inutile de construire les données de cette façon. Essentiellement, je viens de créer une température pour chaque jour de l'année en utilisant des moyennes à partir de nombres aléatoires. Donc, j'ai 365 températures, chacune associée à une date spécifique. Je pense que vous avez raison, bien que je ne sache pas à quoi ressemble votre jeu de données "r". Où que vos données de température numériques soient, ce qui devrait être une valeur par jour de l'année, remplacez ces valeurs par 'temp.avg' – Jason

+0

@ Jason..merci tellement ... mon fichier de données est comme une variable de température pour chaque jour pour 365 jours en 2011 et doit être une temp chronologique de la série chronologique pour l'année complète jour de la semaine yr mnth jour férié jour de semaine weathersit temp 1 1 2011-01-01 printemps 0 1 FAUX Samedi nuageux/brouillard 0.344167 atemp hum windspeed occasionnel enregistré cnt 1 0.363625 0.805833 0.160446 331 654 985 –