Announcement

Collapse
No announcement yet.

TChart Axen Minimun/Maximum im gezoomten zustand

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TChart Axen Minimun/Maximum im gezoomten zustand

    Hallo zusammen,<br>
    ich verzweifle gerade an einer TChart Komponente. Ich möchte die LeftAxis so einzustellen, dass das Minimum um 0.1 kleiner als der kleinste Wert der vorhandenen Series ist. Mit Automatic Minimum landen zu viele meiner Messpunkte genau auf dem Rand des Chart und sind nicht zusehen. <br>
    So weit funktioniert das auch wenn das TChart ungezoomt ist. Setze ich allerdings im gezoomten zustand die Grenzen neu so werden diese für das zoom übernommen
    und gehen dann im ungezoomten Zustand wieder verloren.<br>
    Kennt jemand einen Trick wie ich im gezoomten Zustand die Min/Max-Einstellung für des ungezoomten zustandes ändern kann?
    <br>
    <br>
    Danke schon mal
    <br>
    Yves

  • #2
    Hallo, Yves!

    Wo finde ich in der CBuilder-Leiste die TChart-Komponente?

    Gruß,
    Uw

    Comment


    • #3
      Unter zusätzlich

      Comment


      • #4
        Unter zusätzlich, ganz rechts
        Sieht wie ein Torten diagramm aus, kann aber viel mehr.

        Yve

        Comment


        • #5
          Danke, Euch beiden, für den Hinweis auf die Komponente.

          Nun bin ich nicht sicher, ob Dir, Yves, die nachfolgende Beschreibung hilft, da ich nicht sicher bin, wo genau Deine Problem liegt, da Du schreibst, dass in der Zoom-Ansicht Deine Wünsche erfüllt sind.

          Nach erster Sicht (leider funktionieren keine Spannweitendiagrmme (z.B. vertikale Bar-Charts), bin ich auf folgende Lösung gestossen
          <pre>...
          double maxY=Series1->MaxYValue();
          double minY=Series1->MinYValue();
          Chart1->RightAxis->SetMinMax(0.9*minY, 1.1*maxY);</pre>

          wobei es fünf Unterkomponeten im Chart für die Achsen gibt (TChartAxis), die jeweils für sich auf die Position bezogen sind:
          LeftAxis, RightAxis, TopAxis, BottomAxis und DepthAxis

          Chart1 ist die Komponente der Darstellung und Series1 der Graph. Bei mehreren Datenserien sind die Extremwerte besonders zu bestimmen, wenn sie auf die gleiche Achse bezogen sind.

          Gruß,
          Uwe

          Nachtrag (03.03.04 14:56):

          Ein Freiraum unter und über dem Extremwert des Graphs, in Abhängigkeit von der Spanne, wäre mit

          <pre>float ysup=0.03; // Freiraum = 3% der Spanne
          Chart1->RightAxis->SetMinMax(minY-ysup*(maxY-minY),maxY+ysup*(maxY-minY));</pre>

          Für den Fall konstanter Freiraumgröße:

          <pre>float yPoints=0.1; // Freiraum 0.1 Einheiten
          Chart1->RightAxis->SetMinMax(minY-ypoint, maxY+ypoint);</pre&gt

          Comment


          • #6
            Nachsatz:

            Sicher wirst Du die Routine zur Bestimmung des Größenbereiches der YAchse in das Ereignis <b>Chart1UndoZoom</b> stecken.

            Doch von meiner Seite kommt nun die Frage, wie Du beim Zoom den Wertebereich auf die Extrema <u>des im Zoom dargestellten Wertebereiches</b> gesetzt hast. Kannst Du mir bitte einen Hinweis geben?

            Gruß,
            Uw

            Comment


            • #7
              Nachsatz:

              Sicher wirst Du die Routine zur Bestimmung des Größenbereiches der YAchse in das Ereignis <b>Chart1UndoZoom</b> stecken.

              Doch von meiner Seite kommt nun die Frage, wie Du beim Zoom den Wertebereich auf die Extrema <u>des im Zoom dargestellten Wertebereiches</u> gesetzt hast. Kannst Du mir bitte einen Hinweis geben?

              Gruß,
              Uw

              Comment


              • #8
                Hallo Uwe,<br>
                <br>
                Ich sollte dazu sagen, das ich eine Liste von LineSeries habe die ich in einer Checklistbox zu und Abschalten kann.<br>
                Die Berechnung des Min und Max mach ich ähnlich wie du es vorgeschlagen hast immer dann wenn sich die Auswahl der Listen Ändert. <br>
                Hat der Anwender in diesem Moment jedoch gerade das Chart gezoomt, wird mit SetMinMax der gezoomte Bereich auf die neuen Maße gesetzt und beim Unzoomen tauchen dann wieder die alten Werte auf.
                <br>
                Die Idee mit OnUndoZoom war allerdings gar nicht schlecht. Ich setze die Grenzen nur falls das Chart ungezoomt und setze ansonsten einfach nur Flag das in der OnUndoZip überprüft und ggf. die Grenzen gesetzt wird.
                <br>
                <br>
                Also vielen Dank
                <br>
                Gruß Yves Drexlmeier<br&gt

                Comment

                Working...
                X