在工作日的System.Windows.Forms.DataVisualization.Charting图表中标记X轴

时间:2014-06-27 09:32:29

标签: c#

我的图表的x维度由包含分钟数的双值组成。它们涵盖了1周的范围。虽然我在图表上正确显示这些值没有问题,但我希望X轴标签为周日(小时:分钟精度在标签上不重要,但在图表上显示,因为星期一在15:00是星期一和星期二之间的点,但是例如在星期一16:00之前放置。知道如何实现这个目标吗?

PS:以分钟为单位的上述值来自:#(星期几)* 24 * 60 +小时* 60 +分钟,其中#(星期几)=星期一为0,星期二为1,...

2 个答案:

答案 0 :(得分:1)

我一直在分析Microsoft代码示例:Samples Environments for Microsoft Chart Controls。您希望的行为可以通过以下任一选项完成:

  1. 使用多个Y轴(screenshot)重新调整数据。意味着拥有原始数据点的副本。然后只需修改第二个系列的轴属性。样本中提供完整代码。显然你必须为X轴做到这一点。
  2. 使用主轴和辅助轴:AxisX和AxisX2。
  3. 使用自定义标签(screenshot)。代码示例可在上面的链接中找到。

答案 1 :(得分:0)

您可以将ChartArea的相应Axis IntervalType设置为Days-假设您可以将分钟数转换为Days。您在这里声明的核心思想是创建一个基于“时间”的图,无论它的分钟还是天都将分钟除以/(60 [分钟] * 24 [小时])

您可以通过计算与固定开始时间/日期相关的分钟数来实现对更大时间跨度的渴望。

var chartArea = new System.Windows.Forms.DataVisualization.Charting.ChartArea
            {
                Name = "ChartArea1",
                AxisX = new System.Windows.Forms.DataVisualization.Charting.Axis
                {
                    IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Days
                }
            };

            //...//
            chart.ChartAreas.Add(chartArea);