Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Charting zoom problem with DataTime for X axis

using the MS Charting for .NET, I am trying to zoom into the chart which I have created.

This works fine on the Y axis (type = float) and on the X axis if type = int, but when I have DateTime values on the X axis, scrolling does not behave as it should on this axis.

Vertically, everything still behaves properly, but while I can zoom into the X axis, I cannot drag the sliding bar to move where I am zoomed into. However, I can click either side and it will jump.

Does anyone know how to fix this and make it behave like it does with float values?

Thanks!

like image 599
Mark Avatar asked Jan 13 '11 08:01

Mark


1 Answers

Depending on your data, try setting the chart area's CursorX.IntervalType property to something other than Auto.

You may run into a similar issue when trying to use the small scroll arrows of the scroll bar once you are zoomed in. To fix that you can try to set the chart area's AxisX.ScaleView.SmallScrollSizeType property to the same thing as the CursorX.IntervalType.

For example, if you have a chart with data that is reported every 30 seconds you can use the following settings:

        chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
        chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
        chart1.ChartAreas[0].CursorX.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Minutes;
        chart1.ChartAreas[0].CursorX.Interval = 0.5D;

        chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Minutes;
        chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = 0.5D;
        chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
        chart1.ChartAreas[0].AxisX.LabelStyle.Format = "hh:mm:ss";
like image 89
Dave Avatar answered Oct 29 '22 21:10

Dave