[R] Modifier le temps sur l'axe des ordonnées
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

[R] Modifier le temps sur l'axe des ordonnées



  1. #1
    Loupsio

    [R] Modifier le temps sur l'axe des ordonnées


    ------

    Bonjour,

    Est-ce que quelqu'un sait c'est c'est possible de modifier l'axe des ordonnés quand on manipule des heures (de 00h00 a 23h59) afin de mettre minuit au milieu de l'axe et pas en bas?

    pour les détails si jamais c'est plus simple a comprendre avec un exemple :
     Cliquez pour afficher

    -----

  2. #2
    cherbe

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Sur quel logiciel ?
    Oups, je n'avais pas vu que c'était dans le titre.
    Dernière modification par cherbe ; 16/10/2015 à 21h57.

  3. #3
    CM63

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Mais bon, avec un nom de logiciel comme ça aussi, c'est pas étonnant qu'on zappe

  4. #4
    Loupsio

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Ouai mais ca j'y peux rien, xD
    puis le problème se pose aussi pour le "C" aussi ducoup et aussi pour le langage sur lequel est basé R (le S)

    Sinon personne ne fait de R ici visiblement?

  5. A voir en vidéo sur Futura
  6. #5
    azad

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Ca fait belle lurette (depuis Descartes, je suppose) que l'on sait faire des changements de repère. Tu peux-même si tu en as envie te décaler de 60 h et retrouver ainsi midi en bas de l'échelle mais 4 jours plus tard.

  7. #6
    Loupsio

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Ca fait belle lurette (depuis Descartes, je suppose) que l'on sait faire des changements de repère. Tu peux-même si tu en as envie te décaler de 60 h et retrouver ainsi midi en bas de l'échelle mais 4 jours plus tard.
    Depuis descartes? ca m'étonnerai qu'en 1596 R existait, mais si tu parles d'autre chose que René Descartes... aucune idées...
    Mais sinon c'est souvent que tu viens sur les forum juste pour faire remarquer que tu sais comment faire, mais sans donner d'indication ni d'aide d'aucune sorte?? Oo

    Je me doute que dans la théorie ya moyen, mais concretement en R comment ca se passe? les changement de repère je sais faire, un ylim(...) permet de gerer ca, mais les options de ylim ne marchent pas quand on met un format horaire

  8. #7
    azad

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Bof… rien n'interdit de ne manipuler que des secondes, puis de convertir en H/M/S

  9. #8
    Loupsio

    Re : [R] Modifier le temps sur l'axe des ordonnées

    oui mais si on converti tout en seconde, 23h59:59 equivault a 86399 secondes et il y aura donc des evenements vers 86 000 secondes (avant minuit et donc tout en haut) et des evenements vers 60-6000 secondes donc tout en bas, or je voudrais que minuit (0 secondes) fasse suite a 23h59 (86399 secondes) histoire d'avoir une continuité en fonction du temps qui passe plutot que avoir tout se qui se passe avant minuit , tout en haut du plot et tout ce qui se passe apres, tout en bas du plot

  10. #9
    minushabens

    Re : [R] Modifier le temps sur l'axe des ordonnées

    R va vouloir que 23h soit après 1h, pas l'inverse. Ce que tu peux faire est ajouter 12h à tout le monde. Ensuite dans ta commande tu mets l'option axes=F. Il te restera à dessiner les axes.

    Pour l'axe des ordonnées tu peux faire par exemple:

    axis(pos=2,at=c(6,12,18),label s=c("18:00","0:00","6:00")

    c'est un bricolage mais ça devrait fonctionner (j'ai pas essayé).
    Dernière modification par minushabens ; 18/10/2015 à 17h17.

  11. #10
    Loupsio

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Merci minushabens,
    si je defini "a" comme étant egale a 12:00:00 (au format horaire de R)
    heure2=heure+a #pour ajouter 12 heures a l'ensemble des valeurs du vecteur
    R me fais comprendre que ca marche pas comme ca non plus ^^
    ""
    Error in `+.POSIXt`(heure, a) :
    l'opérateur binaire '+' n'est pas défini pour les objets "POSIXt"
    ""

    et si je ne le met pas au format horaire alors on se retrouve avec une chaine de caractere pas un integer (a cause des ":" ou des "h" qui separent les heures des minutes et minutes des secondes)

    Ducoup a la limite, en convertissant tout en secondes puis en ajoutant 43200 secondes (12h) a tout le vecteur ca devrait le faire, mais enocre une fois je suis a la base avec des string
    je vais voir s'il existe un equivalent du "split()" de python chez R afin d'obtenir un tableau a trois colonnes, multiplier chaque ligne de la premiere par 3600, la deuxieme par 60 et aditionner les trois colonnes de chaque lignes et ensuite ajouter 43200 secondes,
    mais je suis pas sur qu'il existe un split() chez R

    Je vais tester ca, en attendant si quelqu'un a une idée pour faire un split ou additionner des heures en format POSIXt sans passer par une addition normale qui ne marche pas ...

  12. #11
    Loupsio

    Re : [R] Modifier le temps sur l'axe des ordonnées

    J'ai finalement réussi a avoir plus ou moins ce que je voulais (bricolé, pluss en mode cabane dans les arbre que hotel grand luxe)
    Si jamais vous avez des améliorations a proposer allez y, je suis ouvert a toute optimisation, en attendant si il y en a qui sont dans le même cas qui tombent sur ce post, voila comment j'ai fait :

    Code:
    fichier=read.table('TableauComplet.csv',header=TRUE,sep=',',na.string="")
    date=fichier$Date
    date=as.Date(date,"%d/%m/%y")
    horaire=fichier$Horaire
    
    horaire=strsplit(as.character(horaire[!is.na(as.character(horaire))]),":")#on split avec le ":" comme caractere de separation
    
    
    horaire=matrix(as.numeric(matrix(unlist(horaire),ncol=3,byrow=T)),ncol=3,byrow=F)#on le transforme en un tableau a 3 colonnes ou l'on peut appeler chaque composant
    
    
    secondes=(horaire[,1]*3600)+(horaire[,2]*60)+horaire[,3]#on additionne pour avoir heure:minute:secondes en secondes totales
    
    secondes[secondes>43200]=secondes[secondes>43200]-86400#les horaires superieur a 12h se voient retranchés 24h pour que 23h passe en dessous de minuit
    secondes=secondes+(12*60*60)#on ajoute 12h au tout pour pas avoir de chiffres negatifs
    
    dateSansNA=date[!is.na(fichier$Horaire)]#"date" a cause des NA n'a pas la meme dimension que "horaire" (pluss de lignes) donc on supprime les lignes NA
    plot(dateSansNA,secondes,ylim=c(0,(24*60*60)),pch=8,cex=1.5,col='blue',axes=F)
    axis(side=2,at=c(0,43200,80000),labels=c("12:00","00:00","10:00"))
    pour les details dépliez le spoiler, tout y est expliqué
     Cliquez pour afficher

    Merci a tous
    Dernière modification par Loupsio ; 18/10/2015 à 20h14.

  13. #12
    minushabens

    Re : [R] Modifier le temps sur l'axe des ordonnées

    salut,

    pour extraire les composantes d'une date tu n'as pas besoin de manipuler toi-même les chaînes de caractères. Il vaut mieux utiliser la classe POSIXlt

    tu transformes tes dates par exemple : as.POSIXlt(date)->ddate et ensuite tu peux regarder par exemple ddate$min ddate$hour etc.

  14. #13
    Loupsio

    Re : [R] Modifier le temps sur l'axe des ordonnées

    Ahhh, je ne savais pas qu'on pouvait accéder aux élements d'un format horaire indépendamment, j'avais essayé d'additionner directement deux elements de type POSIXt (ce qui ne marchait pas), mais effectivemment si une fois qu'on accède a chaque valeur de cette facon on peut additionner dessus, ca sera pratique pour la prochaine fois ^^

    Thanks

Discussions similaires

  1. modifier plusieurs pages d'un pdf en même temps avec UNKSCAPE
    Par marc03 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 29/08/2014, 08h45
  2. Modifier un moteur essence 2 temps de moto
    Par invite92b79531 dans le forum Technologies
    Réponses: 24
    Dernier message: 15/10/2012, 09h17
  3. Modifier un moteur essence 2 temps en diesel
    Par invite68cdb35e dans le forum Technologies
    Réponses: 26
    Dernier message: 22/09/2012, 08h03
  4. Abscisses et ordonnees : ??
    Par invite4ffe5eff dans le forum Mathématiques du collège et du lycée
    Réponses: 7
    Dernier message: 05/04/2012, 18h07
  5. Modifier le temps de désintégration
    Par invited6a8e0a5 dans le forum Physique
    Réponses: 2
    Dernier message: 18/10/2010, 21h07