none
Probleme avec Winform Chart et un axe de type Time RRS feed

  • Question

  • Bonjour, 

    j'ai dans mon programme un graphique avec un axe y de température (Double) et un axe x en heure(Time)

    Pour entrer mes points, je ne trouve pas mieux qu'un DateTime et je n'arrive pas à obtenir ce que je veux étant donné que le graphique prend la date en valeur et non l'heure si je défini le XValueType en DateTime et m'affiche seulement des "00:00" avec un XValueType = Time.

    La valeur contenu dans mon DateTime est complète et bonne.

    String^ strtot = gcnew String(tempo.c_str());

    DateTime dt = DateTime::Parse(strtot);

    datestring = gcnew String(date.c_str());

    previousdatestring = datestring;

    Chart->Series[cycle]->Points->AddXY(dt, atof(myRow[0]));



    Voila comment j'ajoute mes données (tempo contient la chaine de caractère identique à celle d'un datetime stockée en bdd)

    On ne peut pas créer une instance "Time time" donc si quelqu'un a une solution j'en serais ravi.

    J'éspere avoir été assez clair, Merci d'avance. 

    • Type modifié Ciprian Duduiala jeudi 12 avril 2012 07:09 attente de feedback
    • Type modifié Champii_ vendredi 4 mai 2012 14:07 erreur de type
    jeudi 5 avril 2012 09:19

Réponses

  • Si l'axe des X est sur plusieurs jours

    - configurer la série "series1" de la propriété "Series" de "chart1" déjà créé automatiquement par le Designer :

    --- mettre comme valeur de la propriété "XValueType" à DateTime

    --- mettre comme valeur de la propriété "YValueType" à Double

    Les étiquette de l'Axe X est, par défaut, pas terrible, donc :

    - configurer le chartArea "chartArea1" de la propriété "ChartAreas" de "chart1" déjà créé automatiquement par le Designer :

    --- configurer AxisX->IntervalType sur Hours, par exemple

    --- configurer AxisX->LabelStyle->Format sur "HH:mm:ss", par exemple

    etc...

    Je ne vois toujours pas de problème. :-(


    Paul Bacelar, Ex - MVP VC++



    jeudi 3 mai 2012 11:13
    Modérateur

Toutes les réponses

  • L'objet Chart que vous utilisez fait partie de quel assembly, SVP ?

    Paul Bacelar, Ex - MVP VC++

    jeudi 5 avril 2012 13:50
    Modérateur
  • System::Windows::Forms::DataVisualization::Charting::Chart^  chart2 

    si c'est bien la question

    Ps: désolé du temps de réponse, j'avais laissé mon problème de coté.

    lundi 23 avril 2012 14:21
  • en fait je crois qu'il te demande la version du framework 3? 3.5? 4.0?

    d'où tu as prix l'objet "chart"

    mardi 24 avril 2012 12:45
  • pour tous mes projets VS2010 .Net Framework  4.0
    mercredi 25 avril 2012 09:56
  • C'était pour être sûr que l'on parle des mêmes composants. ;-)

    Je viens de faire le test sur un VS2010 je ne vois aucun problème.

    Mon test :

    - faire une simple form avec un composant chart "chart1" dedans.

    - configurer la série "series1" de la propriété "Series" de "chart1" déjà créé automatiquement par le Designer :

    --- mettre comme valeur de la propriété "XValueType" à Time

    --- mettre comme valeur de la propriété "YValueType" à Double

    j'ai ajouté dans le constructeur de la form, après le "InitializeComponent" les 2 ligne suivante :

    chart1->Series[0]->Points-AddXY(gcnew DateTime(2012,5,2,10,0,0),100);
    chart1->Series[0]->Points-AddXY(gcnew DateTime(2012,5,2,11,0,0),200);

    Et en lançant le projet depuis VS (F7), j'ai bien un histogramme avec 2 barres et un axe X nickel.

    Je ne vois donc aucun "problème".


    Paul Bacelar, Ex - MVP VC++

    mercredi 2 mai 2012 15:25
    Modérateur
  • Désolé j'ai oublié une précision, je fais également de la même manière et pour les informations avec un DateTime du même joue ça fonctionne bien.

    Mon projet c'est une surveillance et ça peut s'étaler sur plusieurs jours et c'est la que ça bloque. Sur 2 données DateTime avec 2 dates différentes c'est là que mon axe Time ne fait pas ce que je voudrai.

    jeudi 3 mai 2012 09:25
  • Si l'axe des X est sur plusieurs jours

    - configurer la série "series1" de la propriété "Series" de "chart1" déjà créé automatiquement par le Designer :

    --- mettre comme valeur de la propriété "XValueType" à DateTime

    --- mettre comme valeur de la propriété "YValueType" à Double

    Les étiquette de l'Axe X est, par défaut, pas terrible, donc :

    - configurer le chartArea "chartArea1" de la propriété "ChartAreas" de "chart1" déjà créé automatiquement par le Designer :

    --- configurer AxisX->IntervalType sur Hours, par exemple

    --- configurer AxisX->LabelStyle->Format sur "HH:mm:ss", par exemple

    etc...

    Je ne vois toujours pas de problème. :-(


    Paul Bacelar, Ex - MVP VC++



    jeudi 3 mai 2012 11:13
    Modérateur
  • Mon problème c'était ça, pas pensé a toucher au chartArea et donc les étiquettes ne me convenaient pas avec un axe X en DateTime. 

    Merci beaucoup pour ton aide.

    vendredi 4 mai 2012 06:22
  • Pensez à marquer le thread comme résolu, svp. ;-)

    Paul Bacelar, Ex - MVP VC++

    vendredi 4 mai 2012 11:15
    Modérateur