辅助轴标签不起作用?
好吧,我在MSChart上有一个日期时间x轴。 我想绘制每个月的第一个月以下的年份和低于一年的变化的年份。 这是我迄今为止的:
for (int i = 0; i < rdate.Length -1 ; i++)
{
    if (rdate[i].Day == 01 && set == 0)
    chart1.ChartAreas[0].AxisX.CustomLabels.Add(
       rdate[i].AddDays(-20).ToOADate(), rdate[i].AddDays(20).ToOADate(), 
       Convert.ToString(rdate[i].ToString("MMMM")), 1, LabelMarkStyle.None);
    set = 1;
    if (rdate[i].Day > 01) 
    set = 0;
    i++;
    if (rdate[i].Year > rdate[i-1].Year)
    chart1.ChartAreas[0].AxisX.CustomLabels.Add(
       rdate[i].AddDays(-20).ToOADate(), rdate[i].AddDays(20).ToOADate(), 
       Convert.ToString(rdate[i].ToString("yyyy")), 2, LabelMarkStyle.None);     
}
然而,由于某种原因,这会跳过几个月......这些年来根本没有出现。
rdate是一个用于填充x轴的日期时间数组。
  这里是我的代码的一个例子: 
正如你所看到的,标签意外行为。 我还想为这些日期显示更大的刻度线标记,并根据日期范围减少日期标签的数量,但我不知所措。 任何人都做过这种事情?
我最近在向x轴添加太多标签时,与MSChart有类似的问题。 该解决方案减少了滴答数量而不会丢失数据。
这种方法适用于我,但您必须根据您的具体需求进行调整。
 dataSeries.XValueType = ChartValueType.Auto; 
 dataSeries.Points.AddXY(record.DateTime, value); 
然后,我确定给定数据的最小和最大日期以确定首选间隔,您的实施将有所不同:
 var totalDays = (maxDate.Value - minDate.Value).TotalDays; 
if (totalDays < 60)
    chartArea.AxisX.IntervalType = DateTimeIntervalType.Days;
else if (totalDays < 120)
    chartArea.AxisX.IntervalType = DateTimeIntervalType.Weeks;
else
    chartArea.AxisX.IntervalType = DateTimeIntervalType.Months;
  指定AxisX标签格式:对于您的情况,您可能必须将Format与时间间隔一起更改。 
chartArea.AxisX.LabelStyle.Format =  Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern;
希望有一些关键部分能够为您提供价值,但您仍然需要根据您的特定需求进行修改。
链接地址: http://www.djcxy.com/p/10479.html