0
我想使用datetimeaxis作爲Oxyplot熱圖系列的Y軸(以winforms形式)。 API允許我將軸添加到PlotModel中,但是由於y值是從雙精度矩陣的整數列索引映射而來的,因此y值並不太好,y值在1900年左右出現。使用日期時間軸作爲Oxyplot HeatMap
如何在熱圖上使用y數據的時間?
我想使用datetimeaxis作爲Oxyplot熱圖系列的Y軸(以winforms形式)。 API允許我將軸添加到PlotModel中,但是由於y值是從雙精度矩陣的整數列索引映射而來的,因此y值並不太好,y值在1900年左右出現。使用日期時間軸作爲Oxyplot HeatMap
如何在熱圖上使用y數據的時間?
解決此問題的方法並不困難。設置圖表時,創建2個軸:一個用於時間,另一個用於HeatMapSeries輸入的整數索引。
DateTimeAxis dateTimeAxis;
HeatMapSeries series;
....
//set up the time axis for y
dateTimeAxis = new DateTimeAxis();
dateTimeAxis.Position = AxisPosition.Left;
dateTimeAxis.Key = "dateTimeAxis";
plotModel.Axes.Add(dateTimeAxis);
//set up a shadow axis for the HeatMapSeries
var linearAxis = new LinearAxis();
linearAxis.Position = AxisPosition.Left;
linearAxis.Key = "linearAxis";
plotModel.Axes.Add(linearAxis);
series.YAxisKey = linearAxis.Key;
接下來,分配Y軸將被隱藏 - 但直到情節已經更新,我們不能訪問Y軸屬性:
//hide the linear axis
plotModel.Updated += (sender, e) =>
{
series.YAxis.IsAxisVisible = false;
};
最後,在設置熱圖時數據,只需創建從矩陣索引到時間的所需映射。然後調整y尺度。例如:
public void UpdateData(double[,] data)
{
series.Data = data;
//adjust date/time axis
int numOfMinutes = data.GetLength(1);
dateTimeAxis.Minimum = DateTimeAxis.ToDouble(DateTime.Now);
dateTimeAxis.Maximum DateTimeAxis.ToDouble(DateTime.Now.AddMinutes(numOfMinutes));
}
我還沒有見過的方式,直接在OxyPlot
做到這一點