C#mschart系列对齐

时间:2014-09-25 02:52:42

标签: c# mschart

我是mschart的新手,面临一些问题。我从数据库中读取记录并将其绘制在图表上。问题是:

  1. 当我将最大记录值设置为最大y轴值时,仅绘制图表。如果我尝试设置y轴的最大值,如最大值+ 50,我的图表正在绘制错误。这是我的代码:

        double y = 0;
        foreach (Record record in records)
        {
            if (y < record.HighValue)
                y = record.HighValue;
        }
    
        chart.ChartAreas["draw"].AxisY2.Minimum = 0;
        chart.ChartAreas["draw"].AxisY2.Maximum = y;
        chart.ChartAreas["draw"].AxisY2.Interval = y / 10;
    
        Series s = new Series();
        s.Name = seriesName;
        s.IsXValueIndexed = true;
        s.XValueType = ChartValueType.Date;
        s.ChartType = SeriesChartType.Candlestick;
        s.Color = Color.Black;
    
        s["OpenCloseStyle"] = "Triangle";
        s["ShowOpenClose"] = "Both";
        s["PointWidth"] = "1.0";
        s["PriceUpColor"] = "Black";
    
        chart.Series.Add(s);
    
        for (int i = 0; i < records.Count; i++)
        {
            s.Points.AddXY(records[i].CurrentDate, records[i].HighValue);
            s.Points[i].YValues[1] = records[i].LowValue;
            s.Points[i].YValues[2] = records[i].OpenValue;
            s.Points[i].YValues[3] = records[i].CloseValue;
        }
    
  2. 图表显示如下:

    http://i57.tinypic.com/11ukyyt.png

    现在,如果我尝试更改最大y轴值,如:

            chart.ChartAreas["draw"].AxisY2.Maximum = y*2;
    

    情节是这样的:

    http://i60.tinypic.com/11kzkba.png

    现在这是错误的,因为你可以看到系列处于错误的y轴位置

    1. 我面临的第二个问题是当我缩放图表时,x轴会变焦但我无法缩放y轴。我试过这个帖子但是得不到什么是'Zoom-x-value'
    2. MSChart - Auto Zoom Y Axis on X Axis Zoom

1 个答案:

答案 0 :(得分:0)

问题1可能的解决方案: 您的代码并未说明您将系列设置为与辅助Y轴对齐。 您需要添加以下代码行:

s.YAxisType = AxisType.Secondary;

问题2遇到的问题可能与我提出的问题1的解决方案有关,但我在使用mschart对象缩放方面没有太多的第一手经验。请详细说明你的意思是“不缩放”。你的意思是y轴值没有变化吗?或者数据本身没有在视觉上放大?

编辑1 :(根据后续评论) 如果在缩放步骤中自己设置最小,最大或间隔Y轴值,请确保设置AxisY2.Minimum,AxisY2.Maximum,AxisY2.Interval,因为上图中显示的轴是Y2轴,不是Y. Y2轴是图表右侧的轴,AxisX2是显示在图表顶部的x轴。 (通常默认情况下禁用X2和Y2,但是您的图像中有Y2显示值,因此需要将系列绑定到AxisType.Secondary)

编辑2 :(基于关于使用辅助轴进行缩放的搜索) 见链接: How to zoom secondary y axis in mschart