Your comments

I ran into this one on iPhone 5.

In OxyPlot.Axes.DateTimeAxis.CalculateActualInterval() there is the code below. The check
Math.Abs(nextInterval) < double.Epsilon
was failing if nextInterval was zero, so the loop never terminated. Changing it to the following fixed the problem. Something not quite right with Xamarin here.
nextInterval == 0 || Math.Abs(nextInterval) < double.Epsilon


            var goodIntervals = new[]
                                    {
                                        Second, 2 * Second, 5 * Second, 10 *
Second, 30 * Second, Minute, 2 * Minute,
                                        5 * Minute, 10 * Minute, 30 * Minute,
Hour, 4 * Hour, 8 * Hour, 12 * Hour, Day,
                                        2 * Day, 5 * Day, Week, 2 * Week,
Month, 2 * Month, 3 * Month, 4 * Month,
                                        6 * Month, Year
                                    };

            double interval = goodIntervals[0];

            int maxNumberOfIntervals = Math.Max((int)(availableSize /
maxIntervalSize), 2);

            while (true)
            {
                if (range / interval < maxNumberOfIntervals)
                {
                    break;
                }

                double nextInterval = goodIntervals.FirstOrDefault(i => i >
interval);
                if (Math.Abs(nextInterval) < double.Epsilon)
                {
                    nextInterval = interval * 2;
                }

                interval = nextInterval;
            }