Page 1 sur 2

insérer une ligne sur un graphique (résolu)

Posté : 18 mars 2014, 22:17
par Javier
Salut
J'essaie d'insérer une ligne verticale, représentant l'heure actuelle, sur un graphique:

http://kocher.es/graficos-highcharts/mareas.php

Le tableau de données est:

http://kocher.es/graficos-highcharts/tide.js

Le point de la ligne d'insertion doit être l'heure actuelle (année, mois, jour, heure, minute).

Comment puis-je ajouter la ligne ?.

Salutations et merci beaucoup

Javier

Re: insérer une ligne sur un graphique

Posté : 19 mars 2014, 22:33
par Javier
J'ai étudié l'API Highcharts, mais parmi toutes les options, l'option pour insérer une ligne à l'heure actuelle n'apparaît pas.

http://api.highcharts.com/highcharts#Axis.addPlotLine

Je pense que ce serait quelque chose comme ce graphique:
http://www.boock.ch/meteo/graphiques_p ... e_jour.php

Re: insérer une ligne sur un graphique

Posté : 19 mars 2014, 22:51
par Météo Villarzel
Salut Javier,

pour afficher la date, tu dois d'abord la créer car elle n'existe pas dans ton fichier de données

Il faut créer la date en PHP et ensuite utiliser la variable pour ton Plotline

http://www.phpdebutant.org/article53.php

A+

Re: insérer une ligne sur un graphique

Posté : 20 mars 2014, 00:24
par Javier
Bonsoir Pierre-André
Je vous remercie de votre réponse.
Le code php suivant indique le jour et l'heure courant:

<?php
$date = date("d-m-Y");
$heure = date("H:i");
Print("Nous sommes le $date et il est $heure");
?>

mais comment je peux intégrer les variables $date et $heure dans Highcharts ?

Muchas gracias

Re: insérer une ligne sur un graphique

Posté : 21 mars 2014, 11:46
par Javier
Maintenant, j'ai la date et l'heure de la fonction php.

Pour insérer la ligne, je pense que je vais devoir faire quelque chose comme ceci:

Code : Tout sélectionner

        xAxis: {
            min: (new Date()).getTime(),
            max: (new Date()).getTime()  + 1 * 24 * 3600 * 1000,
            plotLines: [{ // mark the current time
                color: 'red',
                width: 2,
                value: Date.UTC($date,$heure),
                dashStyle: 'longdashdot'
            }],
        },
Mais ne fonctionne pas:

http://kocher.es/graficos-highcharts/mareas_prueba.php

:idea:

Re: insérer une ligne sur un graphique

Posté : 23 mars 2014, 00:02
par Météo Villarzel
Non, tu dois essayer de créer la date en PHP et ensuite la transformer en Json

par exemple pour le PHP

Code : Tout sélectionner

$day = $date = date("d-m-Y H:i");
Puis en Json

Code : Tout sélectionner

eval(<?php echo  "'var date =  ".json_encode($day)."'" ?>);
Résultat : eval('var day = "22-03-2014 23:54"');

il faut trouver le bon format pour la date et l'heure et ensuite tu utilises "date" pour tracer ta ligne

Code : Tout sélectionner

plotLines:
value:  date,

Re: insérer une ligne sur un graphique

Posté : 23 mars 2014, 00:15
par Javier
Salut Pierre-André

Je viens de lire le message avec vos instructions.
Merci beaucoup pour la direction du problème

Je vais essayer maintenant

Muchas gracias
Bonne nuit

avier

Re: insérer une ligne sur un graphique

Posté : 23 mars 2014, 23:52
par Javier
La partie php fonctionne bien, et renvoie la date dans le format de mon graphique:
http://kocher.es/graficos-highcharts/mareas.php

Mais l'ajout de la nouvelle option sur l'axe des x, le graphique ne s'affiche pas:

http://kocher.es/graficos-highcharts/mareas_prueba.php

[code xAxis: {
plotLines: [{
color: '#FF0000',
width: 2,
value: date
}]
min: (new Date()).getTime(),
max: (new Date()).getTime() + 1 * 24 * 3600 * 1000,

},][/code]

Re: insérer une ligne sur un graphique

Posté : 24 mars 2014, 00:07
par Météo Villarzel
je n'ai toujours pas trouvé la solution
$day = date('Y,m,d,H', strtotime('-1 month'));
ça me renvoie le résultat suivant
eval('var ddate = "2014,02,24,00"');

j'ai mis -1mois car avec Highcharts
0= janvier
1= février
2= mars
.....

Mais il manque les []

J'ai aussi essayé en temps unix

Code : Tout sélectionner

$day   = mktime();
résultat
eval('var ddate = 1395615871'); c'est aussi juste, mais il manque aussi les []


Je cherche encore, mais c'est galère le php quand on ne connaît pas :oops:

A+

Re: insérer une ligne sur un graphique

Posté : 24 mars 2014, 00:40
par Javier
Très reconnaissant pour votre intérêt et votre patience.

Je vais continuer à enquêter

Je vous souhaite une bonne semaine

Javier