2015-10-17 82 views
0

我有一个图表控件,用于显示声压线。.NET图表并显示所有轴X标签

因此,X轴是

31.5 63 125 250 500 1000 2000 4000 and 8000. 

我设置图表上的对数和日志基地10

但我不能够在轴上显示所有这些标签,它显示仅限31.5 315和3150。

试图把间隔时间设置为1,但没有运气。

任何人都可以帮助我吗?

+0

要完全控制标签,您可能需要使用CustomLabels – TaW

+0

我尝试过,但图表根本不显示标签 –

+0

True,其标签或CustomLabels。 – TaW

回答

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的频率步骤列表中的每个其他步骤,并将其用于FromPositionsToPositions

+0

谢谢,我会试试你的例子。也许我在加载自定义标签时使用了错误的位置和位置。 –

+0

请查看更改后的代码;我已经创建了一系列数学步骤,并且只使用其他所有的标签,而其他的使用这些标签 – TaW