MS图表控制:两个X轴,一个小时,另一个几天(或混合两个)

可以有一个X轴显示小时(HH:MM)
和另一个(或相同)显示天数(YYYY-MM-DD)
在不同的时间间隔看起来像


| | | | | 

09:00 10:00 11:00 12:00 01:00


  | 2010/04/20 

或理想情况:


  | | | | | 

09:00 10:00 11:00 2010/04/20 01:00

关闭主题建议
我使用MS Chart Control的次数越多,我对从ZedGraph切换的决定感到后悔。 我真的生气和沮丧我在这些毫无意义的细节上浪费了很长时间,并通过非常丑陋的变通方法来规避(比如制作许多重复的“幽灵”图表以“处理”不同的缩放系列, – 哎呀!!? – ,对齐数据手动添加空点,因为默认代码用例非常不灵活)。 乍一看似乎非常花哨,但从你想要调整并做一些严肃的事情而不是显示超基本饼图或条形直方图的那一刻起,你就进入了一个地狱世界 所以我基本上建议不要使用它,除非你已经坚持使用它(但重新考虑转移到那些不那么笨且费时的事情上永远不会太晚)

编辑:我可以在这里建议使用“关键字”。 看起来非常时髦和乏味……
此外,这违反了逻辑和演示之间的分离
(这应该永远不会发生!设计糟糕的标志……)

对于这种恼人的类似(无能)问题的另一个例子,请看这篇文章

您可以使用单个X轴,并可以自定义“12:00”标签以显示“日期”。 请参阅命名空间System.Windows.Forms.DataVisualization.Charting中的CustomLabel和CustomLabelsCollection。 您可以使用免费软件ILSpy来查看MSChart dll中的内容。

CustomLabel有几个构造函数,我用过这个:

 public CustomLabel(double fromPosition, double toPosition, string text, int labelRow, LabelMarkStyle markStyle, GridTickTypes gridTick) 

基本上,它是这样的:

 CustomLabel label1 = new CustomLabel(...); mychart.ChartAreas[0].AxisX.CustomLabels.Add(label1); 

希望这可以帮助。