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

Ce forum est dédié aux discussions qui concernent les graphiques réalisés avec la librairie Highstock, Une question, un bug ?

Modérateurs : jturlier, Météo Villarzel

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

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

Message par Javier » 18 mars 2014, 22:17

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
Modifié en dernier par Javier le 24 mars 2014, 19:44, modifié 1 fois.
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: insérer une ligne sur un graphique

Message par Javier » 19 mars 2014, 22:33

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
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: insérer une ligne sur un graphique

Message par Météo Villarzel » 19 mars 2014, 22:51

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+
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: insérer une ligne sur un graphique

Message par Javier » 20 mars 2014, 00:24

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
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: insérer une ligne sur un graphique

Message par Javier » 21 mars 2014, 11:46

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:
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: insérer une ligne sur un graphique

Message par Météo Villarzel » 23 mars 2014, 00:02

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,
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: insérer une ligne sur un graphique

Message par Javier » 23 mars 2014, 00:15

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
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: insérer une ligne sur un graphique

Message par Javier » 23 mars 2014, 23:52

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]
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: insérer une ligne sur un graphique

Message par Météo Villarzel » 24 mars 2014, 00:07

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+
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: insérer une ligne sur un graphique

Message par Javier » 24 mars 2014, 00:40

Très reconnaissant pour votre intérêt et votre patience.

Je vais continuer à enquêter

Je vous souhaite une bonne semaine

Javier
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

Répondre