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