答案 0 :(得分:2)
我认为唯一的方法是使用自定义标签。这意味着接管从控件添加标签并自己手动执行的工作,这可能适用于您的情况,也可能不适用。
"Labeling Axes Using Custom Labels" section of the MSDN documentation更详细地描述了这一点:
使用自定义标签为轴提供自定义文本。自定义标签是 使用CustomLabels集合属性实现。如果你使用 自定义标签,图表区域不显示数据的轴标签 分。
使用CustomLabel对象时,必须设置ToPosition和 每个CustomLabel对象的FromPosition属性,以及这些 属性必须指定标签文本区域的宽度。不要 为这两个属性分配相同的值,因为它们 代表一个范围。将自定义标签直接放置在数据下方 点及其关联的刻度线,将FromPosition属性设置为 该数据点的轴的值减去刻度线的一半 interval,并将ToPosition属性设置为该数据的值 点的轴加上刻度线间隔的一半。例如,如果是 axis的间隔为1(1,2,3,...),并且您希望使用自定义 标签在X = 2,然后将ToPosition和FromPosition属性设置为 分别为1.5和2.5。
RowIndex属性指定自定义标签在哪一行 显示。如果在第一个标签行中使用自定义标签,则为图表 区域不显示轴刻度的任何标签。唯一的标签 第二行及以后允许的是自定义标签。
在您的情况下,您不希望标签直接位于刻度线下方,因此在上面引用文字的示例中,您将位置ToPosition设置为2,将FromPosition设置为3. / p>
查看您的特定图表,如果x轴值是DateTimes,您需要检查To / From Positions是否适用于DateTimes。如果没有,您可能需要将值转换为序列号(您可以使用例如DateTime.ToOADate()
来执行此操作),然后再将它们用于x轴。这不会影响显示的内容,因为无论如何您都会用自己的标签替换这些标签,然后您可以根据需要进行格式化。
答案 1 :(得分:-1)
常规标签将始终显示DataPoints。但是你可以显示之间的刻度线。
根据数据类型和Interval
,您可以设置MajorTickMark.IntervalOffset
:
chart1.ChartAreas[0].AxisX.MajorTickMark.IntervalOffset =
chart1.ChartAreas[0].AxisX.Interval / 2f;
注意:为此,您需要设置 Interval
。默认情况下,它设置为0.0
,因此您需要将其设置为其他值!大部分版本的1
都可以。{/ p>
更难以使用CustomLabels
来做同样的事情。对于同样的结果,还有更多的工作要做。不是真的推荐。您可以看到示例here