.NET图表并显示所有轴X标签

时间:2015-10-17 13:01:16

标签: c# .net charts axis

我有一个图表控件,用于显示声压线。

所以X轴是

31.5 63 125 250 500 1000 2000 4000 and 8000.

我将图表设置为对数,日志基数设置为10.

但是我无法在轴上显示所有这些标签,它只显示31.5 315和3150。

试图将间隔设为1,但没有运气。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

要使CustomLabels显示在您的轴上,您需要至少使用以下三个属性创建它们:

  • Text
  • FromPosition
  • ToPosition

以下是一个例子:

enter image description here

private void button4_Click(object sender, EventArgs e)
{
    Series S2 = chart1.Series.Add("Series2");
    ChartArea CA = chart1.ChartAreas[0];
    CA.AxisY.IsLogarithmic = true;

    List<double> fr = new List<double>();
    for (int i = 3; i < 18; i++ )
    {
        fr.Add(Math.Pow(2, 1f * i / 2));
    }

        for (int i = 1; i < fr.Count; i+=2)
        {
            CustomLabel cl = new CustomLabel();
            cl.FromPosition =  fr[i - 1];
            cl.ToPosition = fr[i + 1];
            cl.Text = fr[i] + " Hz";
            CA.AxisY.CustomLabels.Add(cl);

        }

    for (int i = 1; i < 60; i++)
    {
        chart1.Series[0].Points.AddXY(i, Math.Pow(2, i));
        chart1.Series[1].Points.AddXY(i, i * i);
    }

}

请注意,为了获得最佳精确度,您应该使用FromPositionsToPositions不要落在Labels之间,而是放在Labels之间。因此,我跳过显示的FromPositions频道步骤列表中的所有其他步骤,并将其用于ToPositionssrc