使用图表窗口窗体控件显示:
叠加的柱子 几个系列,每个系列约70个数据点。假设x:0 - 70.辅助Y轴。
点/线
显示0-3系列,每个系列约20个数据点。 X值为0-20,因此仅覆盖图表区域的一部分。主要Y轴。
我正在为x轴添加自定义标签。用户可以选择显示24,48或72个数据点。根据数据点的数量,x轴上的间隔会发生变化。
24 -> Interval 1
48 -> Interval 2
72 -> Interval 3
第一个问题
当点/线图不可见时,我不希望显示主Y轴。这是有效的,但是当我添加图形时,整个图表区域会移动并调整大小以适应轴。我希望图表区域保持静止,只需将轴添加到该区域即可。查看图像24_Point和24_NoPoint之间的差异。
第二个问题 轴上的间隔似乎有效,但数字会按比例调整并上下移动以适应,即使似乎没有任何空间问题。有没有办法强制方向,字体和距离,所以他们不动?我看到修复字体的问题是,如果标签要关闭,它们将重叠或消失。但在这种情况下,程序将完全控制标签的数量和图表区域的大小,因此它应该能够控制它。查看图像24_Point和48_Point之间的差异。
相关代码
Chart.ChartAreas["Default"].AxisX.CustomLabels.Clear();
if (PlotHours == 24){
interval = 1;
} else if (PlotHours == 48){
interval = 2;
} else {
interval = 3;
}
q = 0;
for (int i = 0; i=72; i++){
if (q==0){
Chart.ChartAreas["Default"].AxisX.CustomLabels.Add((i-0.5, (i+0.5), AxisLabels[i]);
}
if (q == (interval-1)){
q = 0;
} else {
q++;
}
}
Chart.ChartAreas["Default"].AxisX.Interval = interval;
Chart.ChartAreas["Default"].AxisX.IntervalOffset = 1;
参考图像
我没有删除图片的黑色区域的原因是为了保持它们的规模。
24_Point
24_NoPoint
48_Point
答案 0 :(得分:1)
问题1:我认为你不能让图表离开左边的空白区域。相反,一个简单的解决方法应该做:显示Y轴,但使标签透明! See here for a similar example!这将占据空间,而不会显示出一些不显眼的刻度线。
问题2:当图表不相信时,我认为你不能说服标签他们有足够的空间。它保留了较大和负值的空间,所以我担心你必须允许一些额外的空间
答案 1 :(得分:0)
标签问题通过简单的代码更改解决:
Chart.ChartAreas["Default"].AxisX.CustomLabels.Add((i-(interval/2), (i+(interval/2)), AxisLabels[i]);
您正在为每个标签指定范围。此范围不仅提供有关其涵盖的数据的信息,而且还似乎指定允许标签使用的空间。通过增加此空间,根据您想要的间隔,标签将能够正确显示,而无需旋转或上下移动。