Fragen zur Chart-Komponente



  • ich habe eine struct mit Messwerten und die dazugehörigen Zeiten als TDateTime in einem Vektor. Diese sollen in einer Chart ausgegeben werden. In der X-Achse hätt ich gern die Zeitachse in Minuten.

    Hab es so gemacht:
    for (int i=0; i<vMesswert.size(), i++)
    {
    Series1->AddXY(vMesswert[i].zeitstempel, vMesswert[i].temperatur, "", clRed);
    }

    Frage1: Kann man das Series umbenennen? Hab dazu nichts gefunden.
    Frage2: So wie ich es gemacht habe werden die Uhrzeiten als Kommawert angezeigt. Habe dann deshalb einfach den Variablenwert von i als Zeitwert genommen also:

    for (int i=0; i<vMesswert.size(), i++)
    {
        Series1->AddXY(i-1, vMesswert[i].temperatur, "", clRed);
    }
    

    WIe kann ich die Uhrzeit anzeigen lassen?

    Frage 3:Gibt es sowas wie eine automatische Skalierung? Hab chtMesswerte->AutoSize = false; probiert. Dann verschwindet aber das Diagramm.

    Frage 4: Wie kann ich den Min und Max-Wert einer Achse ändern?



  • wenn du TChart verwendest: das hat eine eigene recht gute Hilfe
    zu 1: was willst du umbenennen? den im CHart angezeigten Namen: Series1->Title
    zu 2:

    Chart1->BottomAxis->DateTimeFormat = "dd/mm/yyy";
    Chart1->BottomAxis->ExactDateTime = true;
    

    zu 3:

    Chart1->BottomAxis->Automatic = true;
    

    zu 4:

    Chart1->BottomAxis->Automatic = false;
    Chart1->BottomAxis->Minimum = 0;
    Chart1->BottomAxis->Maximum = 10;
    


  • ich finde das Series1, Series2,... nicht so passend vom Namen. Kann man den Namen ändern?



  • rudpower schrieb:

    Kann man den Namen ändern?

    Im Dialog Chart->Bearbeiten/Reihen/Titel geht das



  • ich habe in meinem Chart 12 Graphen. Bei der Methode AddXY möchte ich für jeden Graph mir nicht jedes Mal eine neue Farbe ausdenken müssen. Evtl soll diese auch einstellbar sein. Aber ich dacht mir evtl ein Feld mit den Farben anzulegen und dann nur auf die einzelnen Felder zuzugreifen.

    Was meint ihr?



  • Hallo

    Ja kann man machen. Da sollte dir TColorDialog oder TCColorGrid helfen.

    bis bald
    akari



  • Hallo,

    wenn du so was in der Art meinst:

    // Beispiel
       int werte[12] = { 12, 3, 28, 6, 32, 77, 16, 12,5, 10, 34, 45};
       TColor  clSerie[12] = { clRed, clBlue, clGreen, clLime, clFuchsia, clYellow, .....};
    
       for (int i=0; i < 13 ; i++) 
            Series1->AddXY(i, werte[i],"",clSerie[i]);
    

    Du kannst natürlich auch eigene Farben definieren.

    edit: Es kommt natürlich auch darauf an, welche Art Series du darstellen willst ( Feste Linien, Balken, Torte etc.).

    mfg
    kpeter


Anmelden zum Antworten