2 Stimmen

ZedGraph v. 5.15, Ausrichtung mehrerer Y-Achsen

Das Problem, das ich habe, ist bei der Verwendung von zwei Y-Achsen (y1 und y2), wobei der y1-Wert ist: (min, max) = (Null, positiv) und der y2-Wert (min, max) = (negativ, positiv), in einem solchen Fall, die Null-Markierung von y1 fällt mit dem max (negativ) Wert der y2-Achse (durch die x-Achse), das ist das Problem, da ich will, dass der Nullpunkt der beiden y-Achse zusammen zu bündeln.

Wenn ich den Wert von min und max für beide y-Achsen kennen würde, könnte dieses Problem leicht behoben werden, aber ich weiß nur, ob der Bereich bei einem positiven oder negativen Wert beginnt, nicht aber den Wert selbst.

Beachten Sie, dass dieses Problem nicht auftritt, wenn beide y-Achsen Werte (Datenpunkte) über Null haben. Sie richten sich automatisch so aus, dass ihre beiden Nullpunkte durch die x-Achse verlaufen.

0voto

idanp Punkte 900

Dies ist mir gelungen, indem ich das Verhältnis zwischen den Achsen festgelegt habe:

public void SetY1Y2CommonZero()
{
   AxisChange();

   ZedGraph.Scale source, dest;

   if (GraphPane.YAxis.Scale.Min != 0)
   {
       source = GraphPane.YAxis.Scale;
       dest = GraphPane.Y2Axis.Scale;
   }
   else if (GraphPane.Y2Axis.Scale.Min != 0)
   {
       source = GraphPane.Y2Axis.Scale;
       dest = GraphPane.YAxis.Scale;
   }
   else
   {
       return;
       // do nothing - both axis have 0 on min...
   }

   double proportion =  source.Max / source.Min;

   // we want to ENLARGE the other axis accordingly:
   if (proportion * dest.Min > dest.Max)
       dest.Max = proportion * dest.Min;
   else
       dest.Min = dest.Max / proportion;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X