簡體   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