图表x轴最大值未正确设置

时间:2016-04-29 08:43:08

标签: c# charts windows-forms-designer

我目前在C#Windows窗体应用程序(在Visual Studio 2013中)上有一个图表,它使用计时器逐渐在其上绘制一条线。我试图设置x轴和y轴的最小值和最大值,虽然y轴值正确设置并且在图表上按预期显示,但x轴范围未正确设置并停在某一点(约17.9)。这是我目前拥有的图表和计时器的代码:

private void btnPlotGraph_Click(object sender, EventArgs e)
{
    chart1.ChartAreas[0].AxisX.Minimum = 0;
    chart1.ChartAreas[0].AxisX.Maximum = double.Parse(txtTotalHorizontalDistance.Text);
    chart1.ChartAreas[0].AxisY.Minimum = 0 - double.Parse(txtInitialHeight.Text);
    chart1.ChartAreas[0].AxisY.Maximum = double.Parse(txtTotalVerticalDistance.Text);
    timer1.Tick += timer1_Tick;
    timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
    string[] xCoordinates = File.ReadAllLines("H:\\Computing Coursework\\Code\\FormPrototype\\testX.txt");
    string[] yCoordinates = File.ReadAllLines("H:\\Computing Coursework\\Code\\FormPrototype\\testY.txt");

    chart1.Series["Projectile1"].Points.AddXY(xCoordinates[i], yCoordinates[i]);

    if (i >= xCoordinates.Length - 1)
    {
        timer1.Stop();
    }
    else
    {
        i++;
    }
}

此外,这是一个表单的截图,一旦运行以显示x轴最大值的问题(应该是81.08,如文本框所示):

enter image description here

1 个答案:

答案 0 :(得分:0)

你的错是x值。

当您将它们添加为字符串时,它们的值都是0,因此除了在默认标签中显示它们之外,您无法对它们执行任何操作。没有格式,没有范围..

确保将它们转换为数字,可能是这样的:

 string[] xStringCoordinates = File.ReadAllLines(yourFileName);
 double[] xCoordinates = xStringCoordinates.Select(x => Convert.ToDouble(x)).ToArray();

注意:如果字符串包含有效数字,系统会转换y值,但x值不会...