對齊多系列圖表:產生完整的日期範圍
建立多系列圖表通常會帶來挑戰:不同的資料系列在同一時間範圍內可能具有不一致的資料間隔,導致圖表不對齊。 為了解決這個問題,我們需要一個涵蓋整個範圍的完整日期列表,無論數據差距如何。這可確保正確對齊並允許對遺失的資料點進行零填充。
方法一:優雅的 LINQ 解
這種簡潔的 LINQ 方法可以有效地產生所需的日期清單:
<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray();</code>
此程式碼首先建立一個整數序列,表示距開始日期的日期偏移量。然後,它將每個偏移量加到開始日期,產生一個包含指定範圍內的每個日期的陣列。
方法二:迭代For循環
或者,for
循環提供了更明確的逐步方法:
<code class="language-csharp">var dates = new List<DateTime>(); for (var dt = start; dt <= end; dt = dt.AddDays(1)) { dates.Add(dt); }</code>
此循環每天迭代,將每個日期加入清單中,直到到達結束日期。
用預設值填滿空白
要處理遺失的數據,請使用字典將完整範圍內的每個日期對應到其對應的值(如果日期不存在,則使用預設值):
<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsKey(date) ? timeSeries[date] : defaultValue);</code>
這裡,fullDates
是完整的日期清單。 如果 timeSeries
包含給定日期的值,則使用該值;否則,defaultValue
被指派。 這可確保所有日期都出現在最終系列中。
以上是如何產生兩個日期之間的綜合日期清單以進行多系列圖形對齊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!