Pre loader

Problem with dynamic Axis and dynamic Seriessource with MVVM

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums

1
0

Hello,
first at all im very new to SciChart. I actually evaluate it for our Software.
I like the Performance from Scichart.

But now i have a little Problem.

Please have a look at the DEmo-Application. I use MVVM-Light. Think you have to install it via Nuget.

I’ve made two Buttons. With the first one i generate 2 Axis and with the Second – one 4 Axis (Just for testing). This works very fine. I see the GRaph and the GRidlines.

Now i want to generate some Lines for the different Axes.
But when i try to add a new ChartSeriesViewModel to my Seriessource alls Gridlines where hide and the Line wont show. What i’m doing wrong here ?
Can you help me to generate an Example via MVVM to generate more lines for different Axes and fill the Lines with an Timer ?

##########UPDATE

i got the most on my own. I have one left Problem. i want a static x-Axes. For Example from 1 – 60 seconds. And a scrolling chart.
Don’t know how to get this. Actually i have only an increasing x-axes.

Is it possible to make two X-Axes. One Scrolling and one fix. And then i can hide the scrolling one ?
Do you know what i mean ?I have made an attachment with my Demo-Application.
Please have a look at the image. This is how i want that it looks like. The fixed X-Axes and the coninious scrolling Graph.
Thanks

########UPDATE 2

Ok here some more Explanation

In the Screenshots below you can see our actual Graph

In the Graph1 you can see a static X-Axes from 0-60 seconds

In the GRaph2 you can see the Graph starts scrolling. I tried this with Scichart. But the only possibility to start scrolling on the Graph is to set the FifoCapacity from the XyDataSeries. I want to have a Capacity from over 100000 Points to analyze the Graph on a later time with pan and zoom.

In the GRaph 3 you can see a scrolling GRaph and a static x-Axes from 0-60 Seconds. AND The Gridlines do NOT Scroll with the Graph.

In the GRaph 4 we can stop the Measurement. That is also possible with Scichart.
And in the last GRaph we can Pan and Zoom on the stopped Graph. Think this is also possible with Scichart.

So what is not possible (with my knowledge) is, that the Graph should Scroll and The Gridlines should not Scroll.

I trid following:
I set two X-Axes. One with Autorange=”Always” and visibility Collapsed. The FastlinerenderableSeries i set to this X-Axes.
The other X-Axes i set to Autorange=”never” and visible. but the GRidlines always scroll and i think that were the Gridlines from the first X-Axis.

So i hope you understand my Problem now and can help me to find a Solution.

Thanks a lot

Nice Wishes

Images
  • You must to post comments
1
0

Hi there, and thanks for your question!

There are several ways to achieve scrolling in SciChart.

  1. First up, you can create a FIFO Chart as you’ve pointed out. What this does is the X values will always be increasing, and the chart will be scrolling to the right. Old data is discarded once it exits the FIFO buffer.

  2. It is also possible to implement Scrolling without FIFO. In our ECG Demo, we simply update the XAxis.VisibleRange in the ViewModel. Also, this article on having a Fixed Scrolling Time Range demonstrates a similar technique of updating XAxis.VisibleRange. Theoretically, using this method of binding to XAxis.VisibleRange you can achieve any type of scrolling.

However, it sounds to me like you want to scroll a chart but have an axis stationary (values and labels not change). is that right?

If so, you can try this documented workaround:

  • Have one chart with two XAxis
  • One XAxis is Visible (Visibility.Visible). This one has VisibleRange = 0, 60 and AutoRange.Never
  • Another XAxis is Collapsed (Visibility.Collapsed). This one has AxisId=”HiddenXAxisId”
  • All your RenderableSeries, Annotations etc. must have XAxisId = “HiddenXAxisId”
  • When the chart updates, use the technique I mention above to ‘scroll’ the hidden XAxis

The effect will be like you have a fixed axis of 0, 60, but the series is scrolling.

Is this what you want? If not I’m afraid I’m going to need to ask for more clarification.

Best regards,
Andrew

  • Manuel Held
    Hi Andrew, thanks for your Answer. This Solution is working (with a lot of Math :)) But i still have one Problem. The Gridline were moving(scrolling) too. Our Customers like it very much when the Gridlines stands still and only the Plots where moving.
  • Manuel Held
    One more Problem is that it isn't a smooth scrolling. It is stuttering very strong.
  • Andrew Burnett-Thompson
    Which solution did you go for? (2)? You may find if you try to do any pixel-by-pixel scroll that you get stutter, because of the way WPF Schedules drawing. What we do in our ECG example (link above) is we do a 50% scroll - we scroll when the trace hits the right edge of the chart. If you look at other WPF chart components, you'll find most have a similar technique, to avoid pixel-by-pixel scroll
  • Manuel Held
    Yes i tried the second solution. We just evaluate if we can live without a history. The ECG Example isn't nice. it is confused for our customer ( i showed an example to one) if the graph scrolls 50% at once. Now i tried one X-Axis with AutoRange="Always" and IsStaticXAxis="True" and it seems to be very smooth. But without an history.
  • Andrew Burnett-Thompson
    There's a number of ways you can achieve what you want and keep a history. Try the above, IsStaticAxis="True", AutoRange="Never", use normal (non FIFO) series, and handle SciChartSurface.Rendered event, updating XAxis.VisibleRange with your desired value to keep the latest 60 seconds in the viewport.
  • You must to post comments
-1
0

Hello,
i think i found a Bug in IsStatic=”True” in the following Example from Yuri:
https://www.scichart.com/Abt.Controls.SciChart.SL.ExampleTestPage.html#/Abt.Controls.SciChart.Example;component/Examples/IWantTo/CreateRealtimeChart/RealTimeStaticAxis/RealTimeStaticAxis.xaml

If my Firefox or my InternetExplorer is NOT maximized and i open the Example it looks like in Screenshot 1. Thats looks nice as it should.

And then i maximize the IE or Firefox and it looks like the Screenshot 2. The X-Axis Gridlines are only in the first halfe of the Graph.

I’ve the same behaviour in my WPF Example.

Images
  • You must to post comments
-1
0

Hi Andres, i tried your Proposal but it didn’t work as expected. Please have a look at my Example. The XAxises makes an Update of his RAnge but the Lines wont show up. in my Example first click on 4 Axis and the on simulate. Thanks

  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.

Try SciChart Today

Start a trial and discover why we are the choice
of demanding developers worldwide

Start TrialCase Studies