This is a migrated thread and some comments may be shown as answers.

Keeping visible y-values on zoomed graph when range changes

1 Answer 117 Views
ChartView
This is a migrated thread and some comments may be shown as answers.
Philip
Top achievements
Rank 1
Philip asked on 07 Feb 2017, 08:00 AM

Hi, I'm using a RadCartesianChart with a LinearAxis as y-axis. The range for the y-axis is automatic (I haven't set Minimum or Maximum on the axis).

Vertical zoom is enabled, so the user can zoom to the range he likes. The problem is that the range of the viewed y-values changes when range of the line series changes. I understand this is probably by design, since you want to keep the relative values VerticalZoomRangeStart and VerticalZoomRangeEnd.

To make the problem clear, I'll use an example:

Let's say the range of the data is [0,10]. The user then zooms the y-axis to display the values [8,9]. Then the range of the data changes to [0,20] and the range of the y-aixs is recalculated. The range the user sees now automatically changes from [8,9] og [16,18], since the zoom is still [0.8,0.9]. Is there a way to avoid this without manually setting the range of the y-axis?

From the documentation it says : "Maximum: Gets or sets the user-defined maximum of the axis. By default the axis calculates the maximum, depending on the maximum of the plotted data points."

Is there a way to get the calculated maximum? I would then be able to calculate new values for vertical zoom to keep the range of the y-values the same. I noticed that the calculated maximum is not necessarily the same as maximum of the dataset, since you make sure the calculated maximum is a nice round number.

 

1 Answer, 1 is accepted

Sort by
0
Martin Ivanov
Telerik team
answered on 09 Feb 2017, 11:09 AM
Hi Philip,

You are correct, the chart keeps the relative zoom range when the axis range changes. This is by design and cannot be changed. In order to achieve your requirement you will need to manually calculate the new zoom range and set the corresponding properties - VerticalZoomRangeStart and VerticalZoomRangeEnd.

You can get the automatically calculated range via the LinearAxis' ActualRange and ActualVisibleRange properties. There are also events which are invoked when those properties change - .ActualRangeChanged and ActualVisibleRangeChanged.

I hope this helps.

Regards,
Martin
Telerik by Progress
Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
Tags
ChartView
Asked by
Philip
Top achievements
Rank 1
Answers by
Martin Ivanov
Telerik team
Share this question
or