ZedGraph,当图形缩放时,数字会聚集在数字线的区域中

时间:2012-10-20 11:40:12

标签: c# zedgraph

我缩放图表,但我有问题,如图像(http://postimage.org/image/74ra418yv/)。 这是一个模拟窗口,因此每个单位时间计算每个点指针。我没有同时展示所有这些。所以我创建了CalculateScale函数来进行缩放。我需要所有列表中的最小X,Y和最大X,Y。我使用CalculateScale找到x轴和y轴的最小值和最大值。它运作良好,唯一的问题是在一个地区收集数字。

public void EditScale(List<PointPairList> lists)
{
    GraphScale scale = CalculateScale(lists);
    GraphPane.XAxis.Scale.Min = scale.MinX - 20;
    GraphPane.XAxis.Scale.Max = scale.MaxX + 20;
    GraphPane.YAxis.Scale.Min = scale.MinY - 20;
    GraphPane.YAxis.Scale.Max = scale.MaxY + 20;
}

protected GraphScale CalculateScale(List<PointPairList> list)
{
    double maximaY = -10000000;
    double minimaY = 10000000;
    double maximaX = -10000000;
    double minimaX = 10000000;
    double listMinY, listMaxY, listMinX, listMaxX;
    for (int i = 0; i < list.Count; i++)
    {
        listMaxY = list[i].Max(point => point.Y);
        listMinY = list[i].Min(point => point.Y);
        if (listMaxY > maximaY)
            maximaY = listMaxY;
        if (listMinY < minimaY)
            minimaY = listMinY;
        listMaxX = list[i].Max(point => point.X);
        listMinX = list[i].Min(point => point.X);
        if (listMaxX > maximaX)
            maximaX = listMaxX;
        if (listMinX < minimaX)
            minimaX = listMinX;
    }

    return new GraphScale(minimaX, maximaX, minimaY, maximaY);
}

0 个答案:

没有答案