【发布时间】:2015-03-11 18:16:18
【问题描述】:
我有一个图表,其中 x 轴由日期组成,以年为间隔。问题是,根据最短日期,是否显示最小标签。检查以下:
var s = new Series();
s.ChartType = SeriesChartType.Line;
var d = new DateTime(2013, 04, 01);
s.Points.AddXY(d.AddYears(-1), 3);
s.Points.AddXY(d, 3);
s.Points.AddXY(d.AddYears(1), 2);
s.Points.AddXY(d.AddYears(2), 1);
s.Points.AddXY(d.AddYears(3), 4);
chart1.Series.Clear();
chart1.Series.Add(s);
chart1.Series[0].XValueType = ChartValueType.DateTime;
chart1.ChartAreas[0].AxisX.LabelStyle.Format = "yyyy-MM-dd";
chart1.ChartAreas[0].AxisX.Interval = 2;
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Years;
chart1.Series[0].XValueType = ChartValueType.DateTime;
DateTime minDate = new DateTime(2011, 01, 01);
DateTime maxDate = new DateTime(2022, 01, 01);
chart1.ChartAreas[0].AxisX.Minimum = minDate.ToOADate();
运行上面的代码时,最小日期是没有标签的(第一个标签是2012),但是,如果你用2012作为最小年份,就会显示出来。这只发生在高于 1 的区间上,并且值越大越差。我不知道为什么会这样。我也尝试为 LabelStyle 设置间隔属性(减去偏移量),但无济于事。
PS:从this answer 中提取的示例代码,进行了一些修改 在 .NET 4.5.1 和 3.5 上测试
【问题讨论】:
-
可能空间不够?你能选择更紧或更小的字体吗?
-
如果字体是问题,为什么在使用不同年份时会显示? “2012”和“2011”的字体大小肯定没有显着差异吗?此外,如果标签变得局促,它会自动组织起来,我相信它被称为“智能标签”
-
其实有。但原因也可能是标签是如何沿轴分布的。你能发布一两张图片吗?
-
完成。看看这个。我很难相信字体是这里的问题。你还这么认为吗?
-
不幸的是,我是blocked,因为我看到了这些图像。也许其他人会跳进来。希望障碍很快就会消失..