gpt4 book ai didi

c# - MS Chart Control :Two X Axis, 一个用于数小时,另一个用于数天(或两者混合)

转载 作者:太空狗 更新时间:2023-10-29 21:59:26 24 4
gpt4 key购买 nike

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

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

有关此类烦人的类似(无能为力)问题的另一个示例,请参阅 this 帖子

最佳答案

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

希望这对您有所帮助。

关于c# - MS Chart Control :Two X Axis, 一个用于数小时,另一个用于数天(或两者混合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5221404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com