繁体   English   中英

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

[英]MS Chart Control :Two X Axis, one for hours, another for days (or mixing both)

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

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

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

您可以使用单个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);

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM