SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and iOS Chart & Android Chart Components

0 votes
108 views

Hi!

I have a chart that display time-series data and sometimes I have a few minutes of data, other times I have hours. All of the data points are taken every minutes. The X-Axis starts at 0 minutes and progresses from there.

My goal is to have the Axis Title say “Minutes” if there are < 120 points of data. If there are > 120 points of data then I want the Axis to be titled “Hours” and then divide the X-Axis label by 60.

I’ve started with this: https://www.scichart.com/documentation/v5.x/webframe.html#Axis%20Labels%20-%20LabelProvider%20API.html

and it’s doing about what I expect. I check the AxisCore’s Range and if the range is > 120 I set the AxisCore.AxisTitle to “Hours”, otherwise “Minutes”. So far so good.

The problem is that doing it this way means I have labels such as “48.333333” for the hours.

If, on the other hand, when I create the XYSeries that I’m plotting I pass in the already-divided-by-60 values, SciChart seems to select whole numbers so instead of showing me something like “48.333333” it would either show me “48” or it would use 50 or another whole number for the tick marks.

So my question: Is this doable by just writing a custom LabelProvider? Do I need to write a custom Axis class instead? Or somehow tell the Axis that’s in-use to recalibrate itself by dividing all of the elements by 60 before computing tick marks?

In the images I’m attaching, one plot shows me plotting a series where when I create series the x-value is being divided by 60 before I call .Append() on the series. The other one shows what happens when I use my custom LabelProvider and divide by 60 when the Axis label is drawn.

Thanks!

-David

0 votes
2k views

I hace one SciChartSurface with FastOhlcRenderableSeries and FastColumnRenderableSeries.
I want to make something like Trading View. So I need to bind FastColumnRenderableSeries to bottom of surface.
Now, I wrote: VisibleRangeLimit=”0, 0″ VisibleRangeLimitMode=”Min”. It binds bottom of axis to bottom of surface, so zero always at zero. But how I can to bind top axis part?

I saw your example where you are using two Grid with two rows, but I want make it in one row.

1 vote
2k views

Hey all,

I’ve bound a plot’s NumericAxis.AutoTicks to a checkbox and MinorDelta and MajorDelta to TextBoxes. The Idea being that the user can toggle on and off automatic tick spacing and apply their own spacing if they desire. I’m hoping to avoid having to override the tickproviders and/or deltacalculators.

My issue is that once AutoTicks is set to true it appears to lock-out external input of the deltas even after it has been set back to false.

Have I missed something?

0 votes
4k views

Hi

I’m using auto range on a numeric axis. The data can be anything, but I want the axis to never have a range of less than 5.
E.g.: -100 to -95
E.g.: 17 to 22
E.g.: 0 to 5
etc.

What do I need to set to be able to do this? I have tried MinimalZoomConstrain and VisibleRangeLimit without success. Preferably something to set in XAML on my axis.

Thanks.

Showing 4 results
This template supports the sidebar's widgets. Add one or use Full Width layout.