Page 1 sur 2

[R] Courbe dynamique

Posté : ven. 10 mai 2013 21:51
par Hugues
Bonjour,

J'aimerai savoir s'il est possible de réaliser des courbes du genre comme ci-dessous? Je sais qu'il existe GDI... mais je ne suis pas sur qu'il puisse faire ce que je veux... C'est à dire tracer une courbe à partir un fichier *.csv, et ensuite avoir un curseur "dynamique" qui donne les valeurs correspondant au point de la courbe...

http://imagesia.com/curve_7zlk

Merci par avance pour votre aide!

Re: [..] Courbe dynamique

Posté : sam. 11 mai 2013 03:12
par mikell
Pourquoi pas ?
On lit le csv dans une array, on trace la courbe sur un Graphic
► Afficher le texte
Ensuite un slider en correspondance avec l'array
C'est surtout le look qui demanderait du travail, le moteur n'est pas très difficile à faire

Re: [..] Courbe dynamique

Posté : sam. 11 mai 2013 11:21
par Hugues
Ok, j'essaie ça.

Merci.

Re: [..] Courbe dynamique

Posté : sam. 11 mai 2013 16:58
par mikell
Exemple
► Afficher le texte

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 13:04
par Hugues
Me revoilà lol...

Je ne sais pas si je me suis tourné vers la bonne solution en utilisant cette fonction...

Maintenant il ne me reste plus qu'à faire un mixte des 2 fonctions mais ca va être chaud lol car je ne sais pas si dans la fonction _CSV2Array, on peut dire de lire les colonnes B et J pour les valeurs de ma courbes.
► Afficher le texte
► Afficher le texte

Code : Tout sélectionner

Global $a[101][2] = [[0, 0]] -> Initialisation du tableau?

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 13:40
par mikell
Hum faudrait que tu postes le csv ou au moins un extrait significatif
A vue de nez le plus simple serait de sortir l'array avec _CSV2Array, et ensuite de créer l'array de coordonnées à 2 colonnes en extrayant de la 1ère array les colonnes voulues (ou en virant les autres)
On peut aussi se faire une _CSV2Array custom qui sortira direct l'array n° 2
Et faudra adapter l'échelle de la courbe (très fun ça ^^ )

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 13:46
par Hugues
Voilà un exemple de mon fichier *.csv (le nom des colonnes est absent:

Les valeurs pour ma courbes sont la 8ème colonne...
► Afficher le texte

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 14:00
par Hugues
Les colonnes qui m'interessent le plus sont:
Colonne 3 -> Réference
Colonne 4 -> Date et Heure
Colonne 8 -> Valeurs pour tracer de la courbe
Colonne 12 -> ID1
Colonne 13 -> ID2
Colonne 15 -> Tolérance inférieure
Colonne 16 -> Tolerance supérieure

Courbe désirée pour mémoire: http://imagesia.com/curve_7zlk

Merci.

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 14:31
par mikell
Pour pouvoir tester vaudrait mieux que tu postes carrément le fichier, apparemment les séparateurs sont des tabulations et dans le texte posté le forum les transforme en espaces...
Et faudrait savoir si le nombre de lignes est variable ou pas
Mais effectivement faire une fonction custom parait un meilleur plan
Par exemple (valable pour ce que tu as posté) :

Code : Tout sélectionner

#Include <Array.au3>
$txt = FileRead("1.txt")
$res = StringRegExp($txt, '(?s)\s+(\d+,\d+).+?(?:\v|\Z)', 3)
_ArrayDisplay($res)
Mais pour extraire plusieurs données faut qqe chose de plus élaboré

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 16:15
par Hugues
Le nombre de colonne est toujours le même, mais effectivement pas le nombre de lignes.
Il s'agit sur requête sur un point de mesure.
Mon fichier peut contenir de 0 lignes à x lignes en fonction des dates de requêtes et des résultats trouvés.

Je suppose que je dois mettre mon fichier sur un site hebergeur pour le joindre?

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 20:17
par mikell
Le fichier tu peux le mettre en pièce jointe dans ton message
A priori le nombre de lignes dans le fichier va correspondre aux graduations de l'axe x de la courbe, c'est pas un concept anodin pour envisager le paramétrage :mrgreen:

Re: [..] Courbe dynamique

Posté : mar. 21 mai 2013 23:03
par Hugues
En effet, l'echelle de la courbe dependra du nombre de lignes de mon fichier, ainsi que les tolérances inférieure et supérieure...

Voici mon fichier: http://cjoint.com/?CEvw76HJfTS

Re: [..] Courbe dynamique

Posté : mer. 22 mai 2013 14:00
par mikell
Les bonnes nouvelles s'accumulent ... :mrgreen:
Extraire les parties du csv qui t'intéressent dans une array est facile, mais le problème principal va être l'affichage
Pour l'axe x de ta courbe la graduation minimale est de 1 px, 6559 lignes dans le csv => 6559 pixels de largeur pour la courbe
Donc va falloir ou bien fractionner le csv et afficher les parties successivement, ou bien faire en sorte de pouvoir faire défiler la courbe

Re: [..] Courbe dynamique

Posté : mer. 22 mai 2013 14:09
par Hugues
LOL, oui le problème reste l'affichage... :mrgreen:
Car mon fichier peut avoir plus de lignes encor en fonction de l'étendue de la requête...
Pour ma part, le défilement de la courbe serait plus "sympa" pour l'aspect visuel :mrgreen:

Re: [..] Courbe dynamique

Posté : mer. 22 mai 2013 14:28
par GhostLine
Sinon, il reste la solution de faire une moyenne des valeurs de X en X, où X est le ratio nombre de colonne / résolution de la largeur de l'écran, non ? Quitte à autoriser de zoomer dessus pour avoir plus de détails.

Re: [..] Courbe dynamique

Posté : mer. 22 mai 2013 16:24
par Hugues
J'ai esquissé un bout de programme (mixe de plusieurs trouvés et donné precedemment... :mrgreen: )

Par contre, bien sur l'echelle est mauvaise, je ne peux pas fermer mon gui, et le gui se ferme automatiquement lorsque l'on slid à fond vers la droite...
► Afficher le texte

Re: [..] Courbe dynamique

Posté : mer. 22 mai 2013 22:43
par mikell
Pour faire défiler la courbe, voilà la recette
► Afficher le texte
C'est pas compliqué, mais alors après.... pour les échelles de correspondance avec le slider, ya une chiée + 1 de savants calculs... bon courage...

Re: [..] Courbe dynamique

Posté : jeu. 23 mai 2013 11:47
par Hugues
Pour l'echelle, j'ai peut-etre une idée... mais je sais pas si elle est facile à exploitée...

En effet, dans mon fichier *.csv, il y a les tolérances mini/maxi pour ma valeur de point.

Donc je pourrais utiliser ces valeurs avec un offset +- pour avoir de la marge et celal me donnerai mon echelle verticale..?

Re: [..] Courbe dynamique

Posté : jeu. 23 mai 2013 13:42
par Hugues
Sinon question bête... Peut-on faire dialoguer AutoIt et Jfree? :oops:

Re: [..] Courbe dynamique

Posté : jeu. 23 mai 2013 14:36
par mikell
Pour Jfree j'ai des gros doutes vu que c'est en java mais tu peux toujours le tenter