Pre loader

1

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

3 votes

Hi guys,

You may be interested in this answer on Fixing Data Values that Arrive in Non Sorted DateTime Order as this covers the DataSeries API, including ability to Add, Remove, Insert, Update points in detail.

Best regards,
Andrew

0 votes

Hey Michael,

Regarding Windows8, VS2012, WinRT, our stance is this. It’s extremely important to our long term roadmap to port to Win8 (Desktop, Tablet, Phone). However, as of now we’ve not done any testing on these platforms. The reason for this is it is not in demand (you’re the first to mention it).

May I ask – are you just gathering information for future systems or are you interested in developing a Win8 product now? As far as I’m aware, .NET4.5 is desktop mode and .NET4.0 code should be backwards compatible. It’s WinRT (Metro) where we will have to make changes to the code to make it compatible. Since we have a Silverlight codebase (and Win8 is basically Silverlight 6 in disguise!) I anticipate it won’t be too painful!

Best regards,
Andrew

UPDATE: June 2014

As of now SciChart supports .NET 4.0, .NET 4.5, Silverlight 5 on Windows XP, Vista, Windows 7, Windows 8 and Visual Studio 2010, 2012, 2013. We haven’t yet ported to WinRT (Windows Metro) but if enough people request it, we will. Right now all the demand seems to be in WPF! So let us know in the comments if you want Windows Metro.

4 votes

Hello Joerg,

Axis Label styling was introduced in SciChart v3.0. You can now set a Style for a label including margins, LayoutTransforms etc…

Please see the answer on Styling Axis Labels for more information.

Best regards,
Yuriy

4 votes

Hello Joerg,

As part of SciChart v3.0 all axis types now show labels at VisibleRange.Max and Min, so long as VisibleRange.Max, Min fall at ‘nice’ values, e.g. 1.0, 1.5, 2.0, 2.5 etc… By default the chart will choose these nice values when first showing or autoranging.

When you scroll however, the labels scroll too – you lose the labels at the edges of the axis. In this case you might want to use our new StaticAxis Feature, which fixes axis labels at fixed intervals and updates the label value instead.

Best regards,
Yuriy

0 votes

UPDATED JUNE 2014:

As part of SciChart v3.0 all axis types now show labels at VisibleRange.Max and Min, so long as VisibleRange.Max, Min fall at ‘nice’ values, e.g. 1.0, 1.5, 2.0, 2.5 etc… By default the chart will choose these nice values when first showing or autoranging.

When you scroll however, the labels scroll too – you lose the labels at the edges of the axis. In this case you might want to use our new StaticAxis feature, which fixes axis labels at fixed intervals and updates the label value instead.

Hope this helps
Yuriy

0 votes

Hi Joerg,

take a look at the attached. We’ve had a go at creating this chart using only control templates (no modifications to the scichart source code, so this will work with v1.3.5.1225).

What we’ve done is basically override the ControlTemplate for the chart, and setting a fixed size for the axes, used margin/padding creatively to align the axis areas so that the left/right axes groups appear as per your screenshot.

There are a few minor problems with this though – firstly the axis size must be fixed. Secondly one of the left axes doesn’t flip (HorizontalAlignment is ignored). Finally if you use a RubberBandXyZoomModifier in here, when you drag the axis to scale because the mouse is simultaneously over the axis and chart, both modifiers fire.

I suggest the following – take a look at this. Is it moving in the general direction for your needs? This would make a good blog article if we can get it to work, however I’m hesitent to make changes to SciChart just for this feature, it would be good if we can get it working with just overrides / control template changes!

Best regards,
Andrew

0 votes

Hello Straliciuc,

Please see this post on Showing the X and Y Values in the RolloverModifier.

You can use either SeriesInfo.XValue or SeriesInfo.YValue to receive axes values, but in this case you need to use value converter or StringFormat for these properties are defined as IComparable, which doesn’t provide conversion to string by default.

Best regards,
Yuriy

0 votes

Hi Miles,

Currently I’m afraid there’s no way to do this. There is an algorithm inside the DateTimeAxis which tries to choose sensible axis-ticks depending on the input date range. Believe it or not this was really tricky due to the wide ranges of dates that a user might use (Some sub-second, some on a year scale etc…). If you could come up with your own logic to generate axis ticks depending on an input range, then it might be possible to override the DateTimeAxis with your own implementation that outputs these values.

I believe the method to calculate ticks has the following signature:

// Where majorTicks, minorTicks are the date values of the major, minor grid lines as Ticks
long[] minorTicks = TickCalculator.GetMinors(DateRange inputVisibleRange);
long[] majorTicks = TickCalculator.GetMinors(DateRange inputVisibleRange);
0 votes

Hi Andy,

sounds to me like your approach is the best way. It’s going to result in a lot of manual coding on your side I’m afraid as its not a scenario we support out of the box.

The process should be as follows.

  • To add a new series, add DataSeries, RenderableSeries to the chart.
  • Note that you can set RenderableSeries.DataSeriesIndex to tell it where it gets its data from. It tries to default this to the index of RenderSeries in its parent collection.
  • Note you can remove series, insert from both DataSeries/RenderableSeries collections so you should be able to manipulate these in tandem.

I think performance should be fine, we have examples with hundreds of series each with thousands of points and no problems.

Let me know if I can help in some way.

4 votes
In reply to: Vertical X axis

Hello there,

As of SciChart v2.0 this is now possible. ScIChart supports unlimited X or Y Axes on the left, top, right, bottom of the chart. You can use this feature to place XAxis on the Left and YAxis on the Top as per our Vertical Charts Example.

enter image description here

Best regards,
Yuriy

0 votes

Hello there,

Currently I’m afraid there’s no way to do this. You could take a look at this topic XAxis MajorGridLines start date. I believe we will have this feature in SciChart 2.0 for few people were asking about it.

Best regards,
Yuriy

0 votes

Hello Sergey,

In SciChart v1.x this was not possible, however, after SciChart v2.0 many more chart types were introduced, including:

In addition, in SciChart v1.5 we introduced the Annotation feature. We have an example here of using a Horizontal Line Annotation as a draggable threshold which may be of help.

Best regards,
Yuriy

0 votes
In reply to: fixed number of ticks

Hello Alex,

I would suggest using fixed VisibleRange for YAxis. You should set AutoRange = False, VisibleRange = new DoubleRange(DesiredMin, DesiredMax).

Please, try this approach and let us know if it solves your problem.

Best regards,
Yuriy

0 votes

Hello Dwaldo,

Yes it is certainly possible to have an XAxis with string labels. We have created a KB article on this topic here:

Specifying Text Labels with ILabelProvider

There is also downloadable example of this here:

Faking Text Labels (String Axis) with ILabelProvider

Hope this helps!

0 votes

Hi Dwaldo,

You could do this in many ways. I think better approach to do this could be using ComboBox with XyDirection members and bind MouseWheelZoomModifier to its SelectedItem, or ToggleButton for it has three states, so you can write Converter and bind MouseWheelZoomModifier to IsChecked property, or you could modify your code in a such way:

            <CheckBox x:Name="xDirection"
                      Margin="5,3"
                      Checked="XDirection_Checked"
                      IsChecked="{Binding XyDirection, ElementName=mouseWheelZoomModifier, Mode=OneWayToSource, Converter={StaticResource directionConverter}, ConverterParameter=XDirection}"
                      Content="X Direction Only" />
            <CheckBox x:Name="yDirection"
                      Margin="5,3"
                      Checked="YDirection_Checked"
                      IsChecked="{Binding XyDirection, ElementName=mouseWheelZoomModifier, Mode=OneWayToSource, Converter={StaticResource directionConverter}, ConverterParameter=YDirection}"
                      Content="Y Direction Only" />
            <CheckBox x:Name="xyDirection"
                      Margin="5,3"
                      Checked="XYDirection_Checked"
                      IsChecked="{Binding XyDirection, ElementName=mouseWheelZoomModifier, Mode=OneWayToSource, Converter={StaticResource directionConverter}, ConverterParameter=XYDirection}"
                      Content="Both X and Y Direction" />

And one zoom modifier:

            <sciChart:SciChartSurface.ChartModifier>
                <sciChart:ModifierGroup>
                    <sciChart:MouseWheelZoomModifier x:Name="mouseWheelZoomModifier" />
                </sciChart:ModifierGroup>
            </sciChart:SciChartSurface.ChartModifier>

And the converter code:

    class DirectionConverter: IValueConverter
    {
        private XyDirection _selectedDirection;

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return Enum.Parse(typeof(XyDirection), (string)parameter);
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if((bool)value)
            {
                _selectedDirection = (XyDirection)Enum.Parse(typeof(XyDirection), (string)parameter);
            }

            return _selectedDirection;
        }
    }

You should use only one MouseWheelZoomModifier in any case. So if you will have more questions, we will be glad to help!

Best regards,
Yuriy

0 votes

Hi Sim,

We’re actually writing now some code to perform this interpolation for you for our next release. The new API will become:

// with interpolate = false, hit-tests data-points. With true, hit-tests the actual line (or area for Mountain, etc)
var hitTestResult = FastLineRenderableSeries.HitTest(Point pt, bool interpolate); 

This APi will then be used in our SeriesSelectionModifier to improve the selection on click of all series types.

How quickly do you need this feature?

0 votes

Hello there,

You may be interested in this answer on Fixing Data Values that Arrive in Non Sorted DateTime Order as this covers the DataSeries API, including ability to Add, Remove, Insert, Update points in detail.

We also have an example on Real Time Ticking Stock Charts which shows how to Update the latest bar and scroll the chart bar-by-bar in a realtime stock chart example.

Best regards,
Yuriy

0 votes
In reply to: Scichart on CLR 2.0?

Hi Lisbeth,

There should be no problem running SciChart on WindowsXP, however you will need .NET4.0 installed. I’m afraid there is no way we can downgrade to .NET2.0, it would require a complete re-write of the control. Also it would require a complete re-write of your app which depends on many WPF controls (Telerik etc)

Try to find out why .NET4.0 is causing the system to crash. What other dependencies are there that are preventing this from occurring?

An alternative may be to develop the application as a silverlight application, which requires a very lightweight plugin and can be run in a browser and does not require that the .NET framework is updated. Our earliest Silverlight version we support is 4. Silverlight 5 is preferable. Silverlight applications can be deployed locally as well as run via the web.

Perhaps this is a solution? Direct your client to http://www.scichart.com/demo and see if they can see the silverlight demonstration app (Clicking on “Demo App”). If they can see that on an XP machine, at least you know this is possible!

0 votes

Hello Vasile,

DataContext for RolloverLabel is SeriesInfo object, and there are Value property which contains Volume value, and XValue, YValue properties which contain corresponding values from axes. You can bind to any of these ones, but XValue and YValue are both IComparable, so you need to write converter when using them.

Best regards,
Yuriy

1 vote
In reply to: Running in Linux?

HISTORICAL ANSWER. Applies to SciChart Silverlight, which sadly went ex-support when Microsoft discontinued it. See further discussions below about SciChart.js and the tech-stack of SciChart which could allow it to work on Linux

Hello Rippie,

SciChart can run in browser on any platform(Linux, Mac OSX, Windows but not Android) so long as the development is done in Silverlight and end-user has the Silverlight plugin. However, we don’t natively compiled to these operating systems.

Could you give us more info about what are you going to do? We will be glad to help and answer to any questions.

Best regards,
Yuriy

Showing 41 - 60 of 6k results