Pre loader

Forums

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

0 votes
10k views

I have a RolloverModifier based primarily on the example:

    <Border 
        Grid.Row="0" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Top" 
        BorderBrush="#55000000" 
        BorderThickness="1" 
        Margin="70,0,15,0"
        Padding="5"
        CornerRadius="5"
        MinWidth="850" >

        <ItemsControl DataContext="{Binding ElementName=rolloverModifier}" ItemsSource="{Binding Path=RolloverData.SeriesInfo}" HorizontalAlignment="Left">
            <ItemsControl.Style>
                <Style TargetType="{x:Type ItemsControl}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Path=RolloverData.SeriesInfo,Converter={StaticResource EmptyCollectionConverter}}" Value="True">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type ItemsControl}">
                                        <TextBlock Text="No data selected" Margin="5,0" HorizontalAlignment="Center" />
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ItemsControl.Style>

            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding XValue,Converter={StaticResource StringFormatConverter},ConverterParameter={}{0:dd MMM yyyy HH:mm:ss}}"
                                   Margin="5,0">
                            <TextBlock.Style>
                                <Style TargetType="{x:Type TextBlock}">
                                    <Setter Property="Visibility" Value="Collapsed" />
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding SeriesName}" Value="Load">
                                            <Setter Property="Visibility" Value="Visible" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>

                        <Polygon 
                            Points="0 0.5 0.5 1 1 0.5 0.5 0" 
                            Stretch="Fill" 
                            HorizontalAlignment="Stretch" 
                            VerticalAlignment="Stretch" 
                            Fill="{Binding SeriesColor,Converter={StaticResource ColourToBrushConverter}}" 
                            StrokeThickness="0" 
                            Width="7" Height="7"
                            Margin="10,0,5,0" />

                        <TextBlock Text="{Binding .,Converter={StaticResource SeriesValueConverter}}" Margin="5,0" />
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>

            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" IsItemsHost="True" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
    </Border>

The FastLineRenderableSeries is displayed depending on a databound BaseRenderableSeries.IsVisible.

The serieses always have identical x values. I’ve taken advantage of this to display the x value in the rollover border by using the XValue textblock with a trigger bound to the name of the series, if it’s the first then it displays its x value.

If a series is not visible, there is no Item and therefore the DataTemplate isn’t used. If the first series is hidden, I don’t get an x value in my rollover modifier.

Can you see a way of displaying the x value reliably?

Thanks for your time,
Andy C

0 votes
7k views

I’m creating stock OHLC Bar Charts. My users have asked me if I can create a chart such that when the trading is open and there are no trades, the X Axis behaves like a DateTimeAxis and empty space appears on the chart in the X direction between trades. However, they would like the times that trading to does not take place to not appear on the X Axis so that there is no space between the last minute of open trading for one trading session and the next minute of trading for the next session. Is such a chart possible with Sci Charts?

  • deepakb1 asked 8 years ago
  • last active 8 years ago
0 votes
7k views

Hey

What would be price to upgrade from basic to source code?

0 votes
10k views

Hi

From the post that I have been reading it shall be possible to use virtualized dataplots, where data is fetched on demand. I also undertand that you have plans to integrate this functionality tighter with your API.

My questions:
* do you have an example of a virutalized dataplot?
* if, and then when will you have more tightly integrated support for virtualzied dataseries?

0 votes
12k views

Hi,
I’m trying to create a custom axis class, inheriting NumericAxis but the labels don’t show anymore. My code :

public class CustomAxis : NumericAxis {}

                           <SciChart:SciChartSurface.XAxis>
                                <core:CustomAxis DrawMinorGridLines="False" DrawMajorGridLines="False" AutoRange="False" Height="{Binding XAxisHeight, Mode=OneWay}" 
                                          VisibleRange="{Binding ParentViewModel.XVisibleRange, Mode=TwoWay}" VisibleRangeChanged="XAxis_OnVisibleRangeChanged">
                                </core:CustomAxis>
                            </SciChart:SciChartSurface.XAxis>

The user should be able to change the label formatting, eg.: “3000ms” or “00:03:00”.
How can I dynamically change axis formatting ? The axis data type will always be double.

0 votes
7k views

Hi,

I try to catch MouseEnter on RenderableSerie to simulate effect on the serie.
But the event is never catch.

ser.MouseEnter += Ser_MouseEnter;

ser.AddHandler(UIElement.MouseEnterEvent, (RoutedEventHandler)OnMouseEnterCallMeAlways);

They are in she SciChartSurface an element than block the route ?

Thanks

  • Sylvain60 asked 9 years ago
  • last active 9 years ago
0 votes
11k views

I’m using a Gridsplitter to resize the window with the surfacechart. My problem is that the Chartmodifier is too short. If i press inside the chart, the modifier will resize correctly… How can I establish that the height of the modifier grow by Gridsplitter?

0 votes
9k views

Hello,

I’m encountering an issue where I see artifacts being drawn on a plot with a large amount of data (on the order of 10^6 of points). The artifacts are simply lines being drawn from one point to another, on top of the usual plot lines that I would expect to be drawn. These lines tend to flicker during a pan, and I think they are being caused by resampling of the data during a pan. The only resampling modes that this does not occur with are Max and None.

In general, what is the best resampling mode to avoid artifacts and obtain good performance? The data is essentially of a time-series nature (numeric value on Y axis, date on X axis), with fairly consistent spacing between points. I tried Nyquist resampling mode, and it seemed identical to MinMax.

Any insight would be appreciated!

1 vote
10k views

Hello again,

I use ZoomPanModifier in my application. I’ve rotated my chart: I’ve set XAxis.AxisAlignment to “Left” and YAxis.AxisAlignment to “Bottom”. I’ve also set YAxis.AutoRange property to “Never”. When I try to pan my chart, the yaxis extends to all data ranges of renderable series.

Is this a bug? Or need I set a flag to make the y-axis not to extend

Thank’s in advance

I’ve attached GIF (if it doesn’t render) and project below.

  • Egor asked 8 years ago
  • last active 8 years ago
0 votes
0 answers
7k views

Hi,

I’ve been using a converter to use the pixel coordinates of a line to place controls on top of those coordinates. This used to work fine, but after the update (v3.4.0.6319) The LineAnnotation’s XAxis Property is returning Null on initialization. It used to return the XAxis, looping through the XAxes property also doesn’t return anything. Has the behavior been changed on the update? When I get the axis as IAxis it’s always null, if I cast it as NumericAxis it seems to work. It didn’t use to have problems with IAxis before, but now it does.

Thanks

  • kewur asked 9 years ago
  • last active 9 years ago
0 votes
14k views

Hello,

We are working on developing an application that will be deployed on tug boats.
Our end users have asked that we provide a “night mode” to help reduce glare at night as it gets very dark out on the open water and any light reflected off windows seems incredibly bright.

Has anyone previously asked for a simple black and red “night mode” graph theme? If not, would it be possible to put one together?

Thanks,

Aaron

0 votes
9k views

Hi,

I’m not making any sense of the AutoRange behavior in version 2.x. First, the documentation lists choices of .Always, .Auto, and .Never, but Visual Studio IntelliSence tells me the choices are .Always, .Once, and .Never.

The behavior I want is for the data to be fully visible (as after ZoomExtents) initially, but then to response to rubberband zooming and double-click unzooming. “.Once would seem to be the logical choice, but this doesn’t work. Instead, I get a Y-axis range of 0 to 9.

Help?

Thanks,
–George
p.s. I’m using MVVM, and I may have forgotten the trick to calling .ZoomExtents from my ViewModel.

0 votes
10k views

Hi,

We are using SciChart with 4 dataseries inside.
We also display 4 axis at the side.
We like to move one of the series up or down, so we can set it on top of another serie for easier compare.
At the moment, if we move it by dragging the Yaxis, only the max or the min value will change, so the view will change (Ymax – Ymin will be different everytime).

Is there are way to move the serie up or down and keep the size the same (so Ymax – Ymin) will be the same?

Thanks…

0 votes
9k views

I am dynamically creating renderable series. How can I add the point marker also with it

_renderableSeries1 = new FastLineRenderableSeries();
using (SciRealTimeChart.SuspendUpdates())
{
    _dataManager.LoadBuffers(_plDVM, _ioVariables[0], count);
    _renderableSeries1.SeriesColor = (Color)ColorConverter.ConvertFromString(Constants.Constants.HEX_CODE_RED);
    _renderableSeries1.StrokeThickness = 1;
    _renderableSeries1.XAxisId = "DateTimeAxisID";
    _renderableSeries1.YAxisId = Constants.Constants.YAXIS + count;
    _renderableSeries1.DataSeries = _plDVM.DataSeries._DataSeries1;

}
  • HARISHTEI asked 8 years ago
  • last active 8 years ago
0 votes
7k views

Hi,

I’m using the out of the box RolloverModifier :

            <s:SciChartSurface.ChartModifier>
                <s:ModifierGroup>
                    <s:RolloverModifier x:Name="myRolloverModifier" ShowTooltipOn="Always" />
                </s:ModifierGroup>
            </s:SciChartSurface.ChartModifier>
  1. Setting RolloverModifier.Visibility to hidden has no apparent effect. How do I hide it (especially the vertical bar)?

  2. When my code behind sets myRolloverModifier.ShowAxisLabels = false, the behavior is as expected with the exception that the last shown x-value is left hanging on the chart until user moves the mouse off the plot. Is this a bug? Is there a workaround?

Thanks,
Dave

1 vote
10k views

Hello,

I am evaluating SciChart for use in a large WPF application. Right now, we’re using Visifire. It’s OK, but we are running into performance issues and flexibility constraints. So far, SciChart looks much better.

To speed along the evaluation, I’m hoping you can answer a few questions for me:

  1. Does the rollover modifier work with dynamically generated lines (i.e. the FastLineRenderableSeries is not declared in XAML)? In a small sample I built using the trial, rollovers aren’t working at all. Also, is there an event fired on rollover I can use instead of data binding?

  2. Can the Y-Axis be displayed on the left -and- right sides? Customer feedback is that mirroring the axis makes reading the chart easier.

  3. Are there events and properties to determine when the graph is zoomed/panned, and what values are currently visible? I need to synchronize a data grid with just the visible values in the chart.

  4. Can I add custom markers to the chart? Based on samples, it looks like I can. I need markers for max, min and a number of other notable points in the chart.

  5. Can I control formatting of axis values? I need to be able to localize dates, and format currency values with appropriate currency symbols, thousands separators, and decimals.

Thanks,
Alex.

1 vote
15k views

Hi
I want to plot line chart on BoxAnnotation, so that BoxAnnotion become as a container.
i.e dataSeries.Append(100, 100);
dataSeries.Append(200, 150;
on BoxAnnotation
Please have a lool into the picture.

1 vote
14k views

Is there an example of how to implement MVVM with SciChart having multiple axis and multiple series on each axis?

Thank you.

  • mitch_gaby asked 11 years ago
  • last active 9 years ago
0 votes
11k views

Hi,

I want to style the splitter between panes of the SciCharGroup, like changing its height and color.

By using snoop, I can see that the splitter actually is a Thumb control, and SciChart applies a ControlTemplate on it(maybe I’m wrong).
But I still have no idea how to style it.

I need your help.

  • Yuhang Ji asked 8 years ago
  • last active 8 years ago
0 votes
9k views

Applying the following style to a FastLineRenderableSeries works fine:

<Style TargetType="s:FastLineRenderableSeries">
        <Setter Property="SeriesColor" Value="LightGreen" />
        <Setter Property="PointMarkerTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <s:EllipsePointMarker Fill="LightGreen" Stroke="LightGreen" StrokeThickness="3" Width="7" Height="7"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

But the following does not work at all:

<Style TargetType="s:BaseRenderableSeries">
        <Setter Property="SeriesColor" Value="white"/>
        <Setter Property="PointMarkerTemplate">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type s:BasePointMarker}">
                    <s:EllipsePointMarker Fill="White" Stroke="White" StrokeThickness="3" Height="5" Width="5"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

a) Could this be a bug? I want this style to apply to all FastLineRenderableSeries and XyScatterRenderableSeries.
b) I noticed the style is only applied if SeriesColor and PointMarkers are not assigned at the time of RenderableSeries instantiation.

  • bbmat asked 9 years ago
  • last active 9 years ago
0 votes
17k views

Hi Andrew

We would like to be able to set SuspendUpdates in an MVVM scenario as we are using ObservableCollection of IChartSeriesViewModel to drive chart datatemplates.

We are getting some flickering when updating multiple series on the chart due to y axis rescaling.

Is there a bindable property on the SciChartSurface we can use for this? Or do you have another approach?

Thanks in advance
Regards
Ian

  • Ian Carson asked 10 years ago
  • last active 9 years ago
0 votes
11k views

I’m working on a Fifo series chart that fills up to its capacity, then calls xaxis.SuspendUpdates() to freeze the labels, then the line scrolls by – the view is of the last x seconds of data.

When SuspendUpdates has been called, then I maximize the app, the x-axis doesn’t resize properly, which is not really surprising. If I do a quick ResumeUpdates, then SuspendUpdates again, the label numbers have changed to the most recent values – also expected. So, how can I tell a suspended x-axis to refresh/redraw/resize the axis to properly fill, but not ResumeUpdates?

1 vote
10k views

Hello, I am evaluating your product and would like to know if there is a way to use superscript or subscript characters in the titles on the chart. We use chemical terminology that we would like to represent. For example we would represent Phosphorus as PO4-P and the 4 would be a subscript character.

1 vote
8k views

Hi everybody! I’m using SciChart V2.2.5. I have a chart with XyDataSeries<DateTime, double> on it, and i need to associate some extra data with each point to be able to display it on hint.
Something like this:

struct Point
{
    public DateTime XValue;
    public double YValue;
    public long ByteOffset;
}

And i need to find ByteOffset associated with XValue and YValue when user moves mouse over the point in the chart.

  • Danila asked 9 years ago
  • last active 9 years ago
0 votes
10k views

I am currently evaluating the use of SciChart for an application we are developing that requires real-time data graphing. The application uses a TabControl, with different usercontrols in each TabItem .

So I am attempting to replicate the RealTimeCursor example inside a tabItem of a Tabcontrol. The problem I am having is with the rollover legend. Basically the rollover legend appears only if the control is in the first TabItem but not if in the second or subsequent tabItem. Everything else appears to work correctly.

The problem is that the legend does not appear in the “graph” tab – unless the graph tab is the first tab, i.e. – legend appears in the Graph tab as it the first tab (“Test” is the second (empty) tab).

    &lt;TabControl&gt;
        &lt;TabItem Header=&quot;Graph&quot;&gt;
            &lt;local:RealTimeCursors   x:Name=&quot;RealTimeChart&quot;/&gt;
        &lt;/TabItem&gt;
        &lt;TabItem Header=&quot;Test&quot;&gt;&lt;/TabItem&gt;
    &lt;/TabControl&gt;

but legend does not appear if “Graph” tab is the second tab (now “Test” is the first tab) i.e.

    &lt;TabControl&gt;
        &lt;TabItem Header=&quot;Test&quot;&gt;&lt;/TabItem&gt;
        &lt;TabItem Header=&quot;Graph&quot;&gt;
            &lt;local:RealTimeCursors   x:Name=&quot;RealTimeChart&quot;/&gt;
        &lt;/TabItem&gt;
    &lt;/TabControl&gt;

As I want to include one graph inside a tabcontrol – and it is not the first tab – the legend is not appearing. I do not know how to fix this. Can you give me some pointers on how I should modify the RealTimeCursors example to work inside a tabcontrol? Thanks!

1 vote
10k views

Hi,

is it possible to make the Touch Area of a SliceModifiers’ LineAnnotation bigger?

Right now the area has the same size as the MouseClick area, which is a bit too small if you want to drag a modifier with your finger.

Maybe I didn’t look hard enough, but I couldn’t find an overridable HitTest Method in VerticalSliceModifier/VerticalSliceModifierBase.
Or is it possible to override a HitTest (like the “IsPointWithinBounds()” method?) in the LineAnnotation class and use this custom VerticalLineAnnotation as my VerticalLine?

Thank you very much!

Regards,

dowe

  • dowe asked 8 years ago
  • last active 8 years ago
1 vote
15k views

Hello again!

I’ve got a problem with LineAnnotation display on the axis: it is blurry (image 1). I have tried to use UseLayoutRounding/SnapsToDevicePixels properties from this post https://www.scichart.com/questions/question/2-1-1-lines-are-sometimes-blurry-when-added-to-modifier-surface, but it doesn’t work. Any ideas to make this LineAnnotation look like other annotation on surface?

Thanks in advance!

  • Egor asked 9 years ago
  • last active 5 years ago
1 vote
11k views

Hi folks,

I’m pretty sure the answer to this is “no,” but just in case…

Is there an easy way to implement strip chart behavior by specifying a fixed X-axis range instead of a fixed number of points? I have several charts which share the same X-Axis range. I’d like these all to behave like strip charts, showing for example 10 minutes of data. But each chart will be receiving data asynchronously at different rates, perhaps not even at constant rates.

I’m guessing I’ll need to implement my own FiFo-like behavior?

Thanks,
–George

  • yefchak asked 10 years ago
  • last active 9 years ago
0 votes
12k views

Hi,

I’m creating a custom legend and need to be able to let the user update the color of the entire series. I don’t necessarily need the power if your IPaletteProvider interface, as I don’t need to vary the color within the series.

The documentation states that SeriesInfo.SeriesColor is read/write, but even when I update the source explicitly, the binding does not seem to push the color to the renderable series:

private void cpickSeries_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs e)
        {
            System.Diagnostics.Debug.WriteLine(e.NewValue);
            
            var cp = sender as Xceed.Wpf.Toolkit.ColorPicker;
            if (cp != null)
            {
                BindingOperations.GetBindingExpression(cp, Xceed.Wpf.Toolkit.ColorPicker.SelectedColorProperty).UpdateSource();
            }

        }

I’ve turned on verbose logging and confirmed that no warnings are being generated by scichart. Am I approaching this incorrectly? Or is there a method I need to call on the series(which I have not found yet). I’ve confirmed the same behavior between XyScatterSeries and FastLine…

Thanks,
Dan.

0 votes
10k views

I am considering applying server-side licensing for my javerScript application.

In the document below, there is a phrase “Our server-side licensing component is written in C++.”
(https://support-dev.scichart.com/index.php?/Knowledgebase/Article/View/17256/42/)

However, there is only asp.net sample code on the provided github.
(https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-dotnet-server-licensing)

I wonder if there is a sample code implemented in C++ for server-side licensing.

Can you provide c++ sample code?
Also, are there any examples to run on Ubuntu?

  • Marcel asked 11 years ago
  • last active 10 years ago
0 votes
20k views

Hi

I don’t understand how to disable dragging an annotation with mouse. I didn’t find anything in your documentation.

I have a simple annotation as follows:

                                <s:HorizontalLineAnnotation x:Name="line" IsEditable="False" IsManipulationEnabled="False"  IsAttached="True" Y1="2020" ShowLabel="True" LabelValue="" LabelPlacement="TopRight" Stroke="Red"/>

tried with IsEditable=”False” IsManipulationEnabled=”False” IsAttached=”True” but nothing seems to work.

Could you please help me ?
thank you

  • lorenzo522 asked 8 years ago
  • last active 8 years ago
0 votes
17k views

A question was recently asked on priority support tickets – how to to apply a Template Selector to the RolloverModifier, to display different tooltips based on series type?

We are answering the question below so that other users can benefit from it!

1 vote
15k views

Is it possible to export Chart as Vector Graphic?

1 vote
16k views

Hi

In terms of a oscilloscope for instance you can calculate what the time per division (time/div) is for the y-axis and the volts per division for the x-axis. This changes when you zoom in and out.

My question is how can I calculate these in the simplest way possible to calculate the volts per division according to the current zoom level?
You will obviously have inputs of the start frequency and amplitude when the application start or whenever these inputs changes on the units side.
But when you zoom in and out depending on whether you are zooming the y-axis or x-axis or both the time / div and volts / div needs to be calculated.

Thanks a lot Gert

  • Gertdt76 asked 10 years ago
  • last active 10 years ago
0 votes
10k views

Hi! I’m developing a data visualization tool for traders and I’m running into an issue when I try to add Data to the chart on both sides (beginning and end of OhlcDataSeries).

When I add data to the end of the chart it works fine, but when I tried adding data at the beginning it is not drawn in the chart and the appearance of the candlesticks changes to a flat line (look at the attached pictures).

I’m using a basic SciChartSurface with a DataTimeAxis as X and NumericAxis as Y. Both axes have AutoRange turned ON.

I’m using the Append() function to add the data, so that might be the issue. Should I use Insert or what solution would you recommend?

This functionality of adding data on both ends of the chart is very important because I’m listening to live market data while querying historic data from the DB as requested by the user.

Thanks.

0 votes
0 answers
16k views

Hello again. We have an application that has many tabs with scichart surface. Our goal is creating a report: screenshots of all scichart surfaces in tabs. But we found out, when scichartsurface was not active, all tick labels didn’t render on screenshots.
Here is our code snippet for creating screenshot:

double actualHeight = source.RenderSize.Height;
            double actualWidth = source.RenderSize.Width;
            double renderHeight = actualHeight * scale;
            double renderWidth = actualWidth * scale;

            RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)renderWidth, (int)renderHeight, 96, 96, PixelFormats.Pbgra32);
            VisualBrush sourceBrush = new VisualBrush(source);
            DrawingVisual drawingVisual = new DrawingVisual();

            using (var drawingContext = drawingVisual.RenderOpen())
            {
                drawingContext.PushTransform(new ScaleTransform(scale, scale));
                drawingContext.DrawRectangle(sourceBrush, null, new Rect(new Point(0, 0), new Point(actualWidth, actualHeight)));
            }
            renderTarget.Render(drawingVisual);
            JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder();
            jpgEncoder.QualityLevel = quality;
            jpgEncoder.Frames.Add(BitmapFrame.Create(renderTarget));

            Byte[] _imageArray;
            using (MemoryStream outputStream = new MemoryStream())
            {
                jpgEncoder.Save(outputStream);
                _imageArray = outputStream.ToArray();
            }
            return _imageArray;

How can we fix it?

Thanks in advance

  • Egor asked 8 years ago
0 votes
9k views

Hello,
How can I change the scrollwidth of the scrollbar? I want to increase or decrease the width for example to 10…

0 votes
9k views

Hallo,

Say that i zoom 8 times one after another into the chartsurface. Then when i doubleclick i zoom back to the extends with the ZoomExtentsModifier. However i would like to click somewhere and zoom back out step by step. How can i achieve this? Is there a simple option.

  • bochelie asked 10 years ago
  • last active 9 years ago
2 votes
12k views

I am using the SciChart control to render real-time data as it arrives from a data source. This source could be producing data many times per second. New values are appended to the series. If I leave my application running for a long time, the data series gets very long and rendering slows down. I can remove data points from the series when they are older than the VisibleRange and that certainly helps.

My problem is that the user might set the VisibleRange to span several days. If the data source is sending data at 10Hz then that would be 6 million data values per week, redrawing at 10Hz, which I guess will cause some CPU loading. I would like to be able to remove intermediate data from the series if new data being appended to the series would render in the same horizontal pixel as the previous data and is neither the maximum nor minimum Y value at that pixel. In order to do that I need to be able to examine the DateTime of the incoming value and determine its X pixel, then walk back through the existing data to see if it would be visible if rendered (in a new X pixel, or a new min or max in the same pixel as the previous value).

So, finally, to the question: Is there a method for determining the X,Y pixel coordinate for a give X and Y value?

  • asthomas asked 11 years ago
  • last active 9 years ago
1 vote
7k views

How can I print a scaled chart. For Example my chart has a range from 0 to 10 and 1 step shall be 1 centimeter on the printed paper.

0…10 in chart is from 0 to 10 centimeter?

1 vote
15k views

By default legends are displayed as follows:

checkbox, line, legend text

Is it possible to move the legend text to be next to the checkbox and have the line come after? The problem with the way it is is when the legend is on the bottom (for example), the text for one series legend is right next to the checkbox for the following series’ checkbox and it’s kind of visually deceiving and confusing.

0 votes
11k views

I’m trying to have two graphs which share the same X-Axis and have an overview control that zooms and pans. Everything is synchronized but zooming and panning with the overview control. For some reason it only applies to one surface. Below is segments of the code:

SciChartSurface surface = new SciChartSurface();
DateTimeAxis xaxis = new DateTimeAxis();
surface.XAxis = xaxis;
SciChartOverview overview = new SciChartOverview();
overview.ParentSurface = surface;
Binding bind = new Binding();
bind.Source = xaxis;
bind.BindsDirectlyToSource = true;
bind.Mode = BindingMode.TwoWay;
bind.Path = new PropertyPath("VisibleRange"); overview.SetBinding(SciChartOverview.SelectedRangeProperty, bind);
SciChartSurface surface2 = new SciChartSurface();
surface2.XAxis = xaxis;

Could you please help me figure out why it only zooms/pans on one surface?

Thanks,
Greg

0 votes
12k views

I’m trying to set a property value from a property in my custom extension of BaseRenderableSeriesViewModel. Looking at the documentation, it seems this is what I need:

BaseRenderableSeriesViewModel.SetValue()

But I’m a little confused as to what it needs as an input, what exactly is the “ref Property”? Here’s what I’ve tried:

public class CustomEnumRenderableSeriesViewModel : BaseRenderableSeriesViewModel
{
    private float startY;
    public float StartY
    {
        get { return startY; }
        set {
            SetValue<float>(ref startY, value, "StartY");
        }
    }


    // Tell SciChart what type of RenderableSeries you want to instantiate
    public override Type RenderSeriesType
    {
        get { return typeof(CustomEnumRenderableSeries); }
    }
}

public sealed class CustomEnumRenderableSeries : CustomRenderableSeries
{
    public float StartY
    {
        get { return (float)GetValue(StartYProperty); }
        set { SetValue(StartYProperty, value); }
    }
    public static readonly DependencyProperty StartYProperty =
        DependencyProperty.Register("StartY", typeof(float), typeof(CustomEnumRenderableSeries), new PropertyMetadata(0f));
    ....

but the CustomEnumRenderableSeries’s StartY isn’t getting set. I’m not exactly sure what the Type T parameter should be. Is it the type of the property (float in this case) like I have? What then is the property reference I should be passing?

  • Ken Hobbs asked 8 years ago
  • last active 8 years ago
0 votes
10k views

I am considering applying server-side licensing for my javerScript application.

In the document below, there is a phrase “Our server-side licensing component is written in C++.”
(https://support.scichart.com/index.php?/Knowledgebase/Article/View/17256/42/)

However, there is only asp.net sample code on the provided github.
(https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-dotnet-server-licensing)

I wonder if there is a sample code implemented in C++ for server-side licensing.

Can you provide c++ sample code?
Also, are there any examples to run on Ubuntu?

1 vote
11k views

Hi,

After I’ve added some TextAnnotations on the graph, I’ve noticed that the TextAnnotations and CustomaAnnotations doesn’t resize with the view. They all stay constant in size. I’ve found a previous question about this in here: https://www.scichart.com/questions/question/text-annotation-size

But I’m not getting the results I hoped for with this. The test is still not resizing with the surface. Since it’s been a while that a question was asked about this, maybe there are new methods to do this in Scichart?

Thanks

  • kewur asked 9 years ago
  • last active 9 years ago
0 votes
10k views

How to bind SciSurface to an array of System.Windows.Point. Do we need to convert to XYDataSeries always?

0 votes
0 answers
9k views

We are pleased to announce SciChart v1.5.5 Build 1888 has been released. This is an important maintenance update which includes many fixes and some features requested in December 2012 and January 2013.

As of today, you will be able to download v1.5.5.1888 on our Downloads page. If you are a source code customer you should have received an email with updated package details. If not, please contact us!

SciChart v1.5.5.1888 Release What’s New

New Features & Improvements

  • Improved FastBandRenderableSeries.HitTest to include upper line as well as lower
  • RolloverModifier now works properly with BandSeries
  • Added UnsortedDataSeries – a new series type to allow X-Data out of order. Does not currently support Hit-Testing, Rollover and requires ResamplingMode = None
  • Added StrokeThickness to all series, OHLC, Candlestick, Column now natively support StrokeThickness > 1
  • Added optional Checkboxes to LegendControl to enable showing/hiding of series. See ChartLegends example for demonstration
  • Added CustomRenderableSeries, to allow you to create your own series types
  • Added AxisBase.AnimatedVisibleRange to allow you to animate to a visible range via databinding

Bug Fixes

Annotations

  • Fixed moving adorner point of HorizontalLineAnnotation close to Y-Axis caused it to dissappear
  • Fixed TextAnnotation difficult to get focus
  • Fixed TextAnnotation should focus inner textbox after create
  • Fixed HorizontalLineAnnotation dissappears on zooming
  • Fixed annotation becoming visible on redraw after calling Annotation.Hide()
  • Fixed rare condition where annotation drag markers lost focus during real-time updates
  • Fixed cannot deselect an annotation when ChartModifiers are used (as they steal focus)
  • Fixed AnnotationCreationModifier draws modifiers on N charts when used in a multi-pane chart

Rendering

  • Fixed DataPointWidth = 1.0 still has gaps between columns in column chart
  • Fixed blurring for Candlesticks/OHLC when antialiasing is set to false. These chart types now obey AntiAliasing
  • Fixed TextFormatting getting shared across charts
  • Fixed RubberBandXyZoomModifier performs very slight zoom with ZoomExtentsY=false (it should leave YAxis alone)
  • Fixed regression bug – XyScatterRenderableSeries does not display first data point
  • Fixed Trade Markers zoom issue – line dissappears but markers remain when zooming
  • Fixed MouseWheelModifier doubles the zoom rate when MouseEventGroup used across charts
  • Fixed Cursor Labels do not update when mouse does not move but chart data changes
  • Fixed SciChartGroup resizing issue
  • Fixed Axis gridlines/text labels flickering intermittently when zooming or panning
  • Fixed gridlines flicker when SciChartSurface.RenderPriority=Low was used only under .NET4.5

Stability

  • Fixed intermittent IndexOutOfRangeException when using RolloverModifier in a real-time example
  • Fixed DataSeries.FindIndex bug condition when there is only one data-point in the series
  • Fixed ZoomExtents crashing when DataSet == null
  • Fixed extensive zooming leads to memory corruption crash
  • Fixed extremely high memory usage in RealTimePerformanceDemo
    • Related: Fixed examples suite showing wrong example when clicking from homepage
  • Fixed examples suite bug where IExampleAware.OnExampleExit was not called on any example with a viewmodel (so timers were not stopped etc)
  • Fixed rare race condition where XAxis.VisibleRange bindings didn’t update in some circumstances
  • Fixed race condition where chart wouldn’t update if you had a SciChartSurface.SeriesSource binding and the chart unloaded/loaded (e.g. when garbage collected in a tab control)

Overview

  • Fixed OverviewControl doesn’t autorange in Y-Axis when appending data to parent surface dataSeriesSet
  • Fixed OverviewControl dragging outside centre reticule induces blinking
  • Fixed OverviewControl central area dragging sensitive to zoom

Licensing

  • Fixed Vs2012 designer reporting “Invalid License” when license is valid at runtime
  • Fixed trial license reporting invalid when compiling as x86 or x64 (not Any CPU)
  • Fixed issue where trial key extensions sometimes expired prematurely
  • Fixed license key parsing fails when Azerbaijani latin regional setting used

Examples and Tutorials

  • Updated Oscilloscope example to be realtime, have unsorted examples (e.g. Lissajous Plot, Fourier Series)
  • Oscilloscope and ECG examples both use AxisBase.AnimateVisibleRange property
  • Examples suite now displays version number, expiry date of license
  • Added new Tutorial – Synchronizing Mouse across Multi Pane Charts
  • 0 votes
    16k views

    Hi

    what I’m trying to achieve is displaying Candlesticks in a real time stock chart with added space between price bars. This empty space is very important as it’ll allow me to show further information regarding volumes per price level.

    You can have a better understanding of what I’m trying to achieve by having a look at the following image.

    I’m already at the point where I’m rendering both the candlesticks and labels correctly (via textannotations). It’s just that the whole graph is crowded and impossible to understand as annotations and price bars overlaps each other.

    Thank you for your support,
    Michele

    0 votes
    11k views

    Hello,

    Just curious. Is there a maximum amount of Y-Axes that can be shown on a graph?

    1 vote
    15k views

    Hi, I would like to do Pan and Zoom using WPF 4 Multi touch manipulation events. I believe I need to implement a Modifier class to do that. But how should i invoke methods on the chart to do the zooming and panning? And also, when I zoom, I would like it to be in the centre of the manipulation, meaning i would like to zoom at a specific centre on the chart. Please advise. Thanks!

    Showing 101 - 150 of 4k results