Anyone who has just been introduced to OxyPlot and had to deal with a graph comprising of a Time/DateTime axis might find themselves in a corner. The first thing you would notice is that the DataPoint structure accepts only double and that means trouble, especially with a not-so-exhaustive documentation the tool supports. But if you keep persisting and look around a bit, you will soon notice that the OxyPlot developers has done a fair bit of job to ensure TimeAxis (and many more) are possible. The DateTimeAxis Class enables you to add a DateTime object to your PlotModel.
But prior to jumping to your Axes, you need to find a solution to add a DateTime to your DataPoint Collection. This is again made possible by the DateTimeAxis class and the ToDouble method.
var dataPoints = new[] { new DataPoint(DateTimeAxis.ToDouble(new DateTime(2018,1,1,7,23,0)),12), new DataPoint(DateTimeAxis.ToDouble(new DateTime(2018,1,1,8,23,0)),9), new DataPoint(DateTimeAxis.ToDouble(new DateTime(2018,1,1,10,23,0)),13) };
Now let’s add the required axes.
MainGraphModel.Axes.Add(new DateTimeAxis() { Maximum = DateTimeAxis.ToDouble(new DateTime(2018, 1, 1, 12, 23, 0)), Minimum = DateTimeAxis.ToDouble(new DateTime(2018, 1, 1, 6, 23, 0)), Position = AxisPosition.Bottom, IntervalType = DateTimeIntervalType.Hours, MinorIntervalType = DateTimeIntervalType.Hours });