ZedGraph v.5.15,多y轴对齐

时间:2011-01-13 09:30:39

标签: alignment zedgraph

我遇到的问题是使用两个Y轴(y1和y2),其中y1值为:(min,max)=(零,正)和y2值(min,max)=(负,在这种情况下,y1的零标记与y2轴的最大(负)值(通过x轴)一致,这是问题,因为我希望两个y轴的零点齐平在一起。

如果我知道两个y轴的最小值和最大值,那么这个问题可以很容易地解决,但我只知道范围是从正值还是负值开始,而不是值本身。

请注意,当两个y轴的值(数据点)都高于零时,此问题不存在。它们会自动对齐,使得它们的零点都通过x轴。

1 个答案:

答案 0 :(得分:0)

我设法通过固定轴之间的比例来实现:

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;
}