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

Welcome to the SciChart Community Forums!

Please use the forums below to ask questions about SciChart. Take a moment to read our Question asking guidelines on how to ask a good question and our support policy. We also have a tag=SciChart on Stackoverflow.com where you can earn rep for your questions!

Please note: SciChart team will only answer questions from customers with active support subscriptions. Expired support questions will be ignored. If your support status shows incorrectly, contact us and we will be glad to help.

0 votes
6 views

Hi

I have a XyScatterRenderableSeries series with point markers.

As show on the attached image – the point markers are clipped at the edge – even though the data point is within the visible range.

I do not want to expand the visible range.

Is there a way to achieve this?

/Flemming

0 votes
9 views

Hi,
I am drawing real-time chart(512 points per second/ 1 line).
My memory usage shape is like a serrated shape…
I just want to use a certain amount that I set.

Is there any solution or option??

  • CholJin Ko asked 19 hours ago
  • last active 16 hours ago
0 votes
8 views

Hi,
I am binding a huge collection of series (say 10000 series) from viewmodel to RenderableSeries property of ChartSurface
as below,
RenderableSeries=”{s:SeriesBinding ListOfRenderableSeries}”

public ObservableCollection ListOfRenderableSeries
{
get { return listOfRenderableSeries; }
}

I observed that it takes huge amount of time for loading . Is there any way to bind asynchronously from viewmodel( like we have property IsAsync in wpf property binding engine)?

Thanks
deepak

  • deepak b asked 19 hours ago
  • last active 16 hours ago
0 votes
7 views

We have Scichart 2.32 version software. In this version, we are using DateTimeAxis format on XAxis. We are showing XAxis Labels in this Text Formatting as “yyyy-MM-dd HH:mm:ss”.
But now, we need to changing the TextFormatting of XLabels.
We need to show time representation of XLabels in Minutes format. We need to show only minute representation during the Time span in the live chart.

How can we achieve this TextFormatting in 2.32 version software? If not, can we achieve this Formatting in the newer versions?

  • gamze asked 22 hours ago
  • last active 16 hours ago
1 vote
0 answers
14 views

We’re trying to make multiple legends on the screen, for example, 1 for the left axis and its data series, 1 for the right axis and its data series. I can see it’s possible in the WPF documentation, but in the iOS documentation it says “Coming soon!”. Do we need to wait for a future release of the Xamarin.iOS library or is it possible somehow now?

By the way, I’m not a trial user. We’ve just purchased a license today.

Thanks,
Lazar Nikolov

0 votes
12 views

Hello!
There is interesting situation when I’m trying to show volumes on charts in my application. On the first screen you can see that on the left side of the image there is height values of volumes (the data is between 2.000.000 and 5.000.000), on the other side are low (they are between 0 and 100.000 in true values and hardcoded in my sample). It looks like correct because of low vaues, but when i’m scrolling screen to the later data (seconds screenshot), it “jumps” and displays with full-size (on image I’m hardcoded values for 3.000.000, so that’s why they are equals).
When data is hardcoded for 3.000.000 I think it should be closer to the preveous “true” values which are on the left side, but they are not.
It looks like the bottom side of the candles extruding them.
What is the reason of this behaviour? How can I correctly display this data?

Thank you!

0 votes
0 answers
21 views

Hi.

I am using BoxAnnotation in my project. When IsEditable attribute is set to true, there are four resizing grips available on the corners of the box.

The problem is that these grips are only visible when we click on the BoxAnnotation. I couldn’t find any available property to permanently display those resizing grips.

You can view this behavior in the Interaction With Annotations example.

Looking forward to a solution.
Thanks.

  • Ali asked 3 days ago
1 vote
22 views

I need to put a text box annotation that is located in the top left of the chart. It should remain at the top left even when the chart is zoomed, moved, etc. This should likely be some sort of anchor?

1 vote
0 answers
25 views

I’m always getting an Unsorted Data Error when I’m running the Xamarin on iOS simulators, but it doesn’t happen if I run the app on a real iOS device. Does anyone have any idea what could the problem be?

Thanks,
Lazar Nikolov
lazar@codechem.com

0 votes
27 views

Hi,

A problem appears changing Axis Alignment if Annotations exists, look this simple example:

NumericAxis x, y;
    SciChartSurface c;
    public Sci()
    {
        InitializeComponent();

        c = new SciChartSurface();


        c.XAxes.Add(x = new NumericAxis() { Id = "x" });
        c.YAxes.Add(y = new NumericAxis() { Id = "y" });

        //some limits
        y.VisibleRange = new DoubleRange(-5, 5);
        y.VisibleRangeLimitMode = RangeClipMode.MinMax;

        //a series
        var s = new FastLineRenderableSeries() { XAxisId="x", YAxisId="y"};
        c.RenderableSeries.Add(s);

        //some datapoints
        var ds = new XyDataSeries<double>();
        ds.Append(1, 1);
        ds.Append(2, 2);
        ds.Append(3, 1);
        ds.Append(4, 2);
        s.DataSeries = ds;

        //Add an annotation
        var a = new HorizontalLineAnnotation() { Y1 = 1.5d, YAxisId = "y", Stroke = Brushes.Red, StrokeThickness = 1 };
        c.Annotations.Add(a);

        //appending the chart on a grid
        mG.Children.Add(c);


    }

If you run it all works good. Now, add a button that flip chart, with this code:

private void Button_Click(object sender, RoutedEventArgs e)
    {
        c.Annotations.Clear();

        if (x.AxisAlignment == AxisAlignment.Left)
        {
            x.AxisAlignment = AxisAlignment.Bottom;
            y.AxisAlignment = AxisAlignment.Left;

            var a = new HorizontalLineAnnotation() { Y1 = 1.5d, YAxisId = "y", Stroke = Brushes.Red, StrokeThickness = 1 };
            c.Annotations.Add(a);
        }
        else
        {
            x.AxisAlignment = AxisAlignment.Left;
            y.AxisAlignment = AxisAlignment.Bottom;


            var a = new VerticalLineAnnotation() { Y1 = 1.5d, YAxisId = "y", Stroke = Brushes.Red, StrokeThickness = 1 };
            c.Annotations.Add(a);
        }

    }

Now nothing works good…
Can you solve it?

Thanks.
marc.

0 votes
31 views

I am trying to develop a realtime moving chart which reads data and plots. It has four channels. Both X and Y axis intervals are dynamic. ie, required to change the axis interval runtime so that graph plots accordingly.
I implemetd it. Y axis is ok. As it is an moving chart I need to reset the visible range so as to move the chart along X axis . Even if I change the interval of X axis, when I reset the visible it changes to old value.

Following is the code:

On Load:
double SclX=10; // no of intervals in x axis(major ticks)

sciChartSurface.XAxis.AutoTicks = false;
sciChartSurface.XAxis.AutoRange = AutoRange.Never;
sciChartSurface.XAxis.MajorDelta = 100; //Convert.ToDouble(trackFactorX[XCur, 1])
sciChartSurface.XAxis.MinorDelta = 20; //((Convert.ToDouble(trackFactorX[XCur, 1]) /SclX)*2)
XCurMin = 100; // Convert.ToDouble(trackFactorX[XCur, 1]);
XCurMax = 1000; //SclX * Convert.ToDouble(trackFactorX[XCur, 1]);
sciChartSurface.XAxis.VisibleRange = new DoubleRange(XCurMin, XCurMax );

Resetting visible range to implement moving chart

timer.Interval = TimeSpan.FromMilliseconds(1);
timer.Tick += (s, e) =>
{
if (i > XCurMax)
{
XCurMin = XCurMin + Convert.ToDouble(trackFactorX[XCur, 1]);
XCurMax = XCurMin + (SclX * Convert.ToDouble(trackFactorX[XCur, 1]));
sciChartSurface.XAxis.VisibleRange = new DoubleRange(XCurMin, XCurMax);
}
};

Changing interval from 100 to 200 (button click)

sciChartSurface.XAxis.AutoTicks = false;
sciChartSurface.XAxis.MajorDelta = 200; //Convert.ToDouble(trackFactorX[XCur, 1]);
sciChartSurface.XAxis.MinorDelta = 40; // ((Convert.ToDouble(trackFactorX[XCur, 1]) / SclX) * 2);
XCurMin = XCurMin;
XCurMax = XCurMin + (SclX * Convert.ToDouble(trackFactorX[XCur, 1]));

sciChartSurface.XAxis.VisibleRange = new DoubleRange(XCurMin, XCurMax);

Please check any thing else is required.

  • Sophiya K asked 1 week ago
  • last active 5 days ago
0 votes
0 answers
33 views

Tooltips from my TooltipModifier were being clipped at the SciChartSurface’s boundaries when they were long, which I didn’t like. I poked around a bit and discovered SciChartSurface.ClipModifierSurface. After setting this to false, the tooltips were allowed to spill over the boundaries as desired. Yay! However, certain elements including (but perhaps not limited to) the GridLinesPanel’s border lines and gridlines from adjacent plots end up rendering on top of the tooltip (see screenshot; it’s showing two surfaces stacked vertically, with a tooltip from the top one spilling over onto the one below it). Is there anything I can do to prevent this? Things that didn’t work were using a custom TooltipContainerStyle with the new container’s opacity set to 1.0 and its Panel.ZIndex to 100.

0 votes
47 views

We are considering using SciChart (WPF), but only if its performance is ‘reasonable’ across Remote Desktop / or via Citrix Server. Have you addressed the known problems of using WPF applications across RDP / Citrix? If so, could you provide some stats as to the performance across RDP?

The reason we are asking is that our current software in which we are using our own high speed rendering is doing fine with a lot of data on the local machine, but is not doing so well across RDP. This is not a huge surprise given the known issues of WPF and RDP (for example see https://stackoverflow.com/a/1005739/246758). We may need to deal with this slowness as more of our customers are using Citrix-servers to run our software.

Any feedback on performance of SciChart across RDP / or using Citrix would be much appreciated!

0 votes
44 views

Hey,

I have followed the 50 EEG example in creating a group of graphs which is populated using a listbox and a data template. The graphs are created and populated correctly. The issue arises when creating graph modifiers (eg Rollover, Zoom). Is there an issue with selecting these graphs or adding modifiers.

Thank You

0 votes
69 views

I have a question about the scichart performance. I need to display a lot of data on the real time chart and above 2400000 values the chart crops and reacts very slowly. It was tested on Samsung s7. Does scichart handle that much data on devices? Is there any minimum phone performance requirements?

  • al luk asked 2 weeks ago
  • last active 2 weeks ago
0 votes
58 views

Hi,

Let me explain the structure of attached views. Default view state is https://imgur.com/a/zqAqpXp .

<VerticalViewPager>
    <FirstPagedFragment>
         <TradingViewFragment>
             <WebView />
         </TradingViewFragment>
         <SciChartFragment>
             <com.scichart.charting.visuals.SciChartSurface />
         </SciChartFragment>
    </FirstPagedFragment>
    <SecondPagedFragment> 
           ... 
    </ SecondPagedFragment>
</VerticalViewPager>

When FirstPagedFragment is dragged, SecondPagedFragment becomes displayed. You can see it on https://imgur.com/a/2VqZ1HY

The problem is the chart becomes disappeared when ViewPager is on changing state. Here is another link : https://imgur.com/a/xDO6Xtx

It is happened on [Samsung Galaxy S9, API 26] and [Xiaomi Mi A1, API 25] and I did not update displayMetric of chart.
Is there any configuration to fix this issue? Thanks.

All images are attached.

0 votes
57 views

Hi,

When I did some practices with your example app, I found some features does not work as I expected.
Here is CandlestickChartFragment.java and I wrote additional lines on xAxis builder, yAxis builder and surface.chartModifiers,

public class CandlestickChartFragment extends ExampleBaseFragment {
    @BindView(R.id.chart)
    SciChartSurface surface;

    @Override
    protected int getLayoutId() {
        return R.layout.example_single_chart_fragment;
    }

    @Override
    protected void initExample() {
        PriceSeries priceSeries = DataManager.getInstance().getPriceDataIndu(getActivity());
        int size = priceSeries.size();

        final IAxis xAxis = sciChartBuilder.newCategoryDateAxis()
            .withVisibleRange(size - 30, size)
            .withGrowBy(0, 0.1)
            // Start additional lines
            .withAutoFitMarginalLabels(false)
            .withTextFormatting("yyyy-MM-dd")
            .withCursorTextFormating("MM-dd")
            // End additional lines
            .build();
        final IAxis yAxis = sciChartBuilder.newNumericAxis()
            // Start additional lines
            .withAutoFitMarginalLabels(false)
            .withTextFormatting("$ #.#")
            .withCursorTextFormating("#.#")
            // End additional lines
            .withGrowBy(0d, 0.1d)
            .withAutoRangeMode(AutoRange.Always)
            .build();

        IOhlcDataSeries<Date, Double> dataSeries = new OhlcDataSeries<>(Date.class, Double.class);
        dataSeries.append(priceSeries.getDateData(), priceSeries.getOpenData(), priceSeries.getHighData(), priceSeries.getLowData(), priceSeries.getCloseData());

        final FastCandlestickRenderableSeries rSeries = sciChartBuilder.newCandlestickSeries()
                .withStrokeUp(0xFF00AA00)
                .withFillUpColor(0x8800AA00)
                .withStrokeDown(0xFFFF0000)
                .withFillDownColor(0x88FF0000)
                .withDataSeries(dataSeries)
                .build();

        UpdateSuspender.using(surface, new Runnable() {
            @Override
            public void run() {
                Collections.addAll(surface.getXAxes(), xAxis);
                Collections.addAll(surface.getYAxes(), yAxis);
                Collections.addAll(surface.getRenderableSeries(), rSeries);
                Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroupWithDefaultModifiers()
                    // Start additional lines
                    .withCursorModifier().withShowAxisLabels(true).withShowTooltip(true).build()
                    // End additional lines
                    .build());

                sciChartBuilder.newAnimator(rSeries).withWaveTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start();
            }
        });
    }
}

The result is below picture. I also attached the same image.
https://imgur.com/a/5Eqo8Gd
Displayed xAxis values are [27 Sep, 04 Oct, 11 Oct, 18 Oct, 25 Oct, 01 Nov].

The problems are
1. xAxis(CategoryDate) tick values should be started with year, even though it does not have enough margin. It looks updated format is not applied.
2. Cursor should be shown on touch event, but it does not be displayed at all.

I ran above code on [Samsung Galaxy S9, API 26] and [Xiaomi Mi A1, API 25] and same problems are happened.

Could I know what I missed?

0 votes
54 views

Dear Support, I have SciChartSurface in fragment (Xamarin Android). I added Xaxis (DateAxis), Yaxis (NumericAxis), standard modifiers and few XyDataSeries as FastLineRenderableSeries. Everything is working fine (screenshot 1). But something strange is happen when fragment with chart is Paused -> Stopped and then Started -> Resumed. Xaxis and Yaxis are not visible. All dataseries are not visible. But I debugged and all data is there. Even rolloverModifier is still working and correct data values are displayed in labels (screenshot 2). It does not happen every time – it depends on what external intent stopped fragment.

I’ve tried reinitialize chart (clear Xaxis, Yaxis, remove modifiers, remove renderableSeries are reinit all with new variables) and it does not help. Only fragment dettach -> attach helps or screen orientantion change (it reinitializes fragment)

Could you tell me any suggestion what can I check or how to force to redraw whole SciChartSurface? (hiding it and showing it does not help – effect is the same. Only fragment dettach and attach helps (this is my workaround at the moment).

0 votes
58 views

I have some complex data & am showing each dataset as a different colour, but I would like to be able to customise the legends.

I am interested in having 2 legends, one with each data set, showing the colour, and preferably, limited to a set number with the option to scroll, and the other showing that solid lines are the left Y axis, and the dashed lines are the right Y axis.

My question is, is there a way to apply a custom skin to the Legend & is there a way to show dashed lines instead of just a big coloured square in the legend?

0 votes
50 views

Hi,

I was looking at some examples and one thing caught my eye. In the example below

Android Line Chart

the graph appears smooth around the surface(appears to be a spline curve) but when I tried to implement the same the smoothness is gone(appears as a normal curve). Any apparent reason why this is happening.

0 votes
50 views

Hi,

I wanted to implement a custom delta provider for a numeric axis but there is no way to set the delta provider for the numeric axis. Please advice

Note : I want to change the number of ticks shown based on visible range. My visible range is dynamic.

0 votes
41 views

Hello, I’m using rollover modifier. By default data label is in first line, and data value is in second line. How can I modify it to have label and value in single line?

0 votes
58 views

Hi,

I am trying to show a 2D Scatter series having 4 points that form a square. Like (0;0), (1;0), (1;1) and (0;1). Is there a way to tell the chart to keep this thing square when I resize the surface, use zoom extent, rubber zoom etc? I basically need X/Y ratio to be fixed.

Thanks

0 votes
91 views

Hi,

I have a question as to whether it is possible to draw major gridlines to end at the renderSeries surface. Something similar to the attached image.

0 votes
80 views

Hi,

I am trying to add labels to the x axis but I don’t want the axis line to be visible. numericAxis.drawLabels = true enables the x axis line also. Is there a way to disable it?

0 votes
85 views

I’m using a rollover tooltip to display series info.
Tooltips are shown in the same order data points are hit, so it changes while i would like to fix it so the user always see the series in the same position throughout the chart.

Thank you

0 votes
113 views

When showing a new view, there are some annotations (from an AnnotationCollection) on the panel, but the RenderableSeries is empty. Is it possible to use the scrollbar to zoom in details of annotations?

  • yi zheng asked 3 weeks ago
  • last active 3 weeks ago
1 vote
96 views

Hi all. I would like to add tooltips to my chart, but have them behave a bit differently than they do by default. Specifically, they should

  1. Appear on left-click rather than on hover
  2. Stay open until the user clicks outside them (or the mouse leaves the chart area)
  3. Not appear if another ToolTip is already open (mostly follows from #2)

The existing ToolTipModifier can give me #1, but not #2 or #3, as far as I can tell.

So what’s the best way for me to implement this behavior? Can I get to it by subclassing the existing ToolTipModifier, or do I need to start from scratch? And if deriving is the answer, what would I need to override?

My motivation is that I would like to place buttons/hyperlinks in the tooltip for performing actions related to the clicked datapoint, so if there are completely different ways to achieve this that don’t involve tooltips at all, I’m open to suggestions.

0 votes
155 views

The Annotation API mentions adding borders and border colors to this annotation; however, I can find them. Do I need to create an annotation type of my own by extending from the TextAnnotationViewModel?

0 votes
161 views

Is it possible to scale annotations? I’ve included a couple screenshots. The first is our old, ugly legacy chart. The next few are SciChart. One challenge we have is to place labels on a chart at different locations relative to specific locations on the series. They need to be annotations that the user DOES NOT have permission to edit before he saves the chart to a PNG.

The purple and red lines on my chart look exceptional and “scale” correctly because their XY values scale as the chart is resized matching the series as it scales.

The red, purple and orange annotations however do not. I understand why it’s happening as I’m placing the annotations at exact locations via XY. So as I magnify or resize the window the XY doesn’t change; however, the original location of my annotation “appears to the user” to move. I understand that it’s not really moving as it is still located at the same exact XY where it was placed.

Is there a simpler way to scale it to a relative position during a window resize? Or am I stuck having to redraw the annotations as this happens?

1 vote
0 answers
192 views

I am developing a WPF application with multiple series on a single surface.
I would like to have a legend displaying for each series a value based on user’s choice (e.g. first point, last point, average, min, max and so on).

How can i achieve this?

Thank you

0 votes
0 answers
187 views

Hi,

I am using sci chart version 2.2.1.2256 in that I am getting date wrong, I have attached image please go through it.Here I am sending previously how I am getting date and now what I am getting.

I am using date formatter “dd/MM/yyyy”

finalDateStr = “29/08/2016” and finalWeightStr = “76.7”

dataSeries.appendX(SCIGeneric(dateFormatt.date(from: finalDateStr)!), y: SCIGeneric(finalWeightStr))

1 vote
211 views

I saw in the examples where a “gain” and “loss” affected the color of a series. This took a bit of time; however, I figured out was you were doing and was able to implement it.

Please see the attached image. There are 2 sections in my series that are “Green” whereas the remainder of the series is gray. I’d like to be able to do 2 things ONLY to the green area.

  • Show point markers ONLY on the points in the green area.
  • Increase the stroke thickness.
0 votes
237 views

We have a different legacy chart in our older applications. In this chart zooming happens when we pull down and to the right. We remove the zoom (zoom out to initial size) when we pull up to the left. Of course, this is all with the left mouse button pressed.

SciChart zooms, in my opinion, much better and more specific. However I’m sure my company would prefer the mouse down, pull up to the left to reset the zoom much like our legacy product.

Is this possible? Can I override the zoom effect?

0 votes
249 views

Hi,

I was checking the feasibility, where user can add curve line, same as if he is adding a line via line annotation, but I could not find a way to achieve this.

So wanted to check, if it is possible to have a curve line annotation or something ? I am not quite sure if we can achieve this via custom annotation or custom chart modifier.

Any help would be appreciated.

Thanks.

0 votes
0 answers
303 views

Microsoft has announced that it plans to retire the XPS file format and remove the XPS viewer in future Windows installations. I presume this mean the “Export to XPS” feature will not be useful for much longer. Given this news, does SciChart have plans to support a different vector format like SVG instead?

0 votes
349 views

I can’t establish a runtime license in my application because the method doesn’t show up in the intellisense.

SciChartSurface.SetRuntimeLicenseKey.

In fact, no methods exist for this class (I’m assuming this is a static class and method). I’m getting this class via…

SciChart.Charting.Visuals.SciChartSurface.

I’m guessing that this is not where this class is located, but I can’t figure out where it is.

0 votes
578 views

We are investigating the SciChart 3D trial in order to upgrade an application already using SciChart 2D. In the process, we found that SciChart 3D downloads and depends on a DLL at:

%LocalAppData%\SciChart\Dependencies\v5.2.0\x86\SciChart3DNative.dll

Our production environment doesn’t have internet access nor can users load DLLs downloaded into the users folder.

Is there a way to package SciChart3DNative.dll with SciChart 3D for offline usage? We have already tried copying the DLL and every permutation of the above folder path next to the compiled application, but this didn’t affect SciChart downloading and depending on the %LocalAppData% DLL.

0 votes
0 answers
609 views

The exception happens on the GC finalizer thread and has the following call stack:

SharpDX.dll!SharpDX.ComObject.SharpDX.IUnknown.Release() Line 256 C#
SharpDX.dll!SharpDX.ComObject.Dispose(bool disposing) Line 286 C#
SharpDX.dll!SharpDX.DisposeBase.CheckAndDispose(bool disposing =
false) Line 59 C# SharpDX.dll!SharpDX.DisposeBase.~DisposeBase() Line
28 C# [Native to Managed Transition]
kernel32.dll!00007ffc5c1b1fe4() Unknown
ntdll.dll!00007ffc5d1fcb31() Unknown

I have a single SciChartSurface that is plotting a single FastImpulseRenderableSeries, which is bound using MVVM (SeriesBinding/ImpulseRenderableSeriesViewModel). Only debug builds appear to be affected.

Do I need to be disposing or otherwise cleaning up any of the SciChart objects I create?

0 votes
562 views

I’m evaluating the WPF chart and have an issue when using series binding. In our first test app we added a series directly via code and that worked.

Now I’m using binding and have an issue with the series and gridlines not displaying.

I’m fairly confident it is binding because I can move the CursorModifier around on the chart and see appropriate tooltips which match the data I would expect to see given the XY axes.

Also, before binding a series the chart shows the gridlines correctly. Only after I bind a series does the lines disappear and the series to not draw.

I’ve attached the source, the XAML styles I’m using and images between a grid that looks correct (no series bound) and one that is invisible (IS bound).

Any ideas?

UPDATE: in this application even normal series won’t work. I’m using the same method I used in my original test application of adding to a series using the var series = new XyDataSeries<double, decimal>(); and appending points to a series I’ve predefined on the chart in the XAML file.

0 votes
607 views

Hi,
I have a 2D graph with single X-Axis and single Y-Axis. I want to have the Y-Axis always zoom to fit the data, but also want to force a minimum span, so that tiny fluxtuations in the trace dont get amplified when the trace is running at a steady value. Currently I’m using a derived ViewportManager like this:

class MinYSpanViewportManager : DefaultViewportManager
{
    public double MinSpan { get; set; } = 0.0;

    public override void AttachSciChartSurface(ISciChartSurface scs)
    {
        base.AttachSciChartSurface(scs);
        ParentSurface = scs;
    }

    public ISciChartSurface ParentSurface { get; private set; }


    protected override IRange OnCalculateNewYRange(IAxis yAxis, RenderPassInfo renderPassInfo)
    {
        if (ParentSurface.ZoomState == ZoomStates.UserZooming)
        {
            return yAxis.VisibleRange.AsDoubleRange();
        }

        var range = yAxis.GetMaximumRange().AsDoubleRange();

        var currentSpan = range.Diff;

        if (currentSpan >= MinSpan)
        {
            return yAxis.GetMaximumRange().AsDoubleRange();
        }

        double delta = MinSpan - currentSpan;

        return new DoubleRange(range.Min - delta / 2, range.Max + delta / 2);
    }
}

Is this the best way to implement this feature? I’ve seen a property on the NumericAxis called MinimalZoomConstrain, which sounds like it does what I want. But when I tried setting it to a value, the YAxis no longer automatically zoomed to fit the data, even if AutoRange=”Always” was set.

Best regards,
Jonathan

0 votes
602 views

I want to print the odd numbers 1,3,5,7,9,11 into the y axis of my chart using xaml in wpf.

0 votes
577 views

Quick example. All charts visible:

enter image description here

Setting Visibility.GONE to RSI chart:

enter image description here

As you can see part of RSI chart is now visible on MACD chart.

Here is my layout. I want to be able to hide any of the charts inside LinearLayout and the remaining charts should equally fill the newly created space. I wasn’t able to recreate the desired behaviour with ConstraintLayout, otherwise I would use it.

<com.scichart.charting.visuals.SciChartSurface
        android:id="@+id/priceChart"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_height="0dp"
        android:layout_weight="1">

        <com.scichart.charting.visuals.SciChartSurface
            android:id="@+id/macdChart"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

        <com.scichart.charting.visuals.SciChartSurface
            android:id="@+id/rsiChart"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

        <com.scichart.charting.visuals.SciChartSurface
            android:id="@+id/volumeChart"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>
    </LinearLayout>
  • Primoz asked 4 weeks ago
  • last active 4 weeks ago
0 votes
646 views

I managed to be able to render the EllipsePointMarkers, but here is the thing: It only works when I declare the PointMarker in my view model inside the constructor of the XyScatterRenderableSeriesViewModel. The Style with the PointerMarkerTemplate is NOT APPLIED for some reason. Could this be a bug? Please note that in the following code in the view model I specify the color to be “Red” (ARGB(255, 255, 0, 0) but in xaml the template specifies yellow for the fill and stroke.

I absolutely need the PointMarker Template to work because I want to be able to change the color and thickness of the Scatter points during runtime via UI (function in my custom legend).

The following are code snippets from my view model and the corresponding xaml:

ChartSeries.Add(new XyScatterRenderableSeriesViewModel()
                {
                    DataSeries = dataSeries,
                    //Stroke = color,
                    //StrokeThickness = 10,
                    IsVisible = isVisible,
                    AntiAliasing = useAntiAliasing,
                    IsSelected = isSelected,
                    XAxisId = "DateTimeAxis",
                    YAxisId = yAxisId,
                    PointMarker = new EllipsePointMarker()
                    {
                        Fill = Color.FromArgb(255, 255, 0, 0),
                        Stroke = Color.FromArgb(255, 255, 0, 0),
                        StrokeThickness = 5
                    }

                });


<UserControl.Resources>

    <Style TargetType="{x:Type s:XyScatterRenderableSeries}">
        <Setter Property="PointMarkerTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <s:EllipsePointMarker Fill="Yellow" Stroke="Yellow" StrokeThickness="15"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <s:EffectConverter x:Key="EffectConverter"/>

    <DropShadowEffect x:Key="LegendDropShadow" BlurRadius="10" Direction="-45" ShadowDepth="5" Color="Black"/>

    <SolidColorBrush x:Key="LegendTextBrush"  Color="#5F5F5F"/>

    <resources:VisibilityToBooleanConverter x:Key="VisibilityToBooleanConverter"/>

    <resources:CustomCategoryDateTimeAxisLabelProvider x:Key="LabelProvider"/>

</UserControl.Resources>
  • bbmat asked 4 weeks ago
  • last active 4 weeks ago
0 votes
602 views

Hi,

I’m trialing SciChart as a replacement to IOComp’s plot pack, which I’m trying to migrate away from since our move to WPF 2 years ago. I have a few questions, heres the first:

Does the PinchZoomModifier work currently? I suspect that it doesn’t, as I’ve followed this page from the documentation:
https://www.scichart.com/documentation/v5.x/webframe.html#PinchZoomModifier.html to no avail. I tested the program on two different PC’s with two different types of touch screen.

If it isn’t fully implemented yet, do you have an ETA on its arrival? If it is fully implemented, please can you provide a working example, I’ve looked through the samples program, but didn’t find any touch based examples.

Best regards,
Jonathan

0 votes
641 views

Hi there,

I’am using your example that name is SyncMultipleChartsFragment.
I want to share pinch zoom modifier all other charts. Your example provides “ModifiersSharedEventsGroup” . When zooming on chart other charts handle this zoom operation. In this case, fingers are just in a chart.
How can I make a finger zoom on 1 chart while the other finger is on a different chart.

Below I’am sharing a video about this problem.
Link of video : https://drive.google.com/file/d/1u42p9-vEQNxPzN56jF3QOjZIVUlOyyXx/view

Thank you very much,
Have a good day,

0 votes
642 views

Hi

I am new to Scichart. I started using it after trying another control to plot a realtime, high speed moving graph. Graph contains 4 channels or series. Each channel will have a common interval at x axis but different intervals at y axis. WPF application receives data at a serial port at a speed of 100 points every 24 milliseconds. I need to plot this realtime, moving. I also need to change intervals of x and y axis when running graph so the graph continues to plot at new interval.

Further more I also need to read values from x or y axis ie, Xa, Xb or Ya,Yb by moving cursor.

All these features where implemented using the previous control. but speed of plotting was low when comparing with speed of data received so buffering occurs.

Can all these be implemented using Scichart? If so can suggest some example so that I can refer it. What urgently required is changing divisions along x and y axis.
I need the appearance to be as in the image attached.

Thanks in advance!

  • Sophiya K asked 4 weeks ago
  • last active 4 weeks ago
0 votes
556 views

I just purchased a license for WPF 2D+3D (Pro) and tried to use a scichartsurface without DirectX and it works fine but as soon as I include

s3D:DirectXHelper.TryApplyDirectXRenderer="True"
                s3D:DirectXHelper.FallbackType="{x:Type s:HighSpeedRenderSurface}"

I get the following runtime error:

System.Windows.Markup.XamlParseException: ‘Could not load file or assembly ‘SciChart.Drawing.DirectX, PublicKeyToken=b55dd9efe817e823′ or one of its dependencies. The system cannot find the file specified.’

What am I doing wrong? I installed the newest Scichart version on the Nuget channel. In Nuget I can see that “SciChart”, “SciChart3D”, “SciChart.DirectX” and a bunch of SharpDX libraries were installed.

  • bbmat asked 4 weeks ago
  • last active 4 weeks ago
0 votes
590 views

I want to handle mouse click event on ChartSurface. I need to detect when clicked on chart whether series was clicked or chartsurface was clicked. I handled previewmouseleftbutton on chartsurface but it is not giving clicked element information. Can you pls help?

  • KC asked 1 month ago
  • last active 1 month ago
0 votes
0 answers
599 views

Hi,

I am playing with the heatmap chart and stumbled upon an IndexOutOfRange exception when updating the chart.

I initialise my chart where Height=2 and Width=3:

var data = new double[Height, Width]; // 2 rows, 3 columns
double d = 0.0;
for (int y = 0; y < Height; y++)
{
    for (int x = 0; x < Width; x++)
    {
        data[y, x] = d++;
    }
}

heatmapSeries.DataSeries = new UniformHeatmapDataSeries<int, int, double>(data, 0, 1, 0, 1);

Calling the following line returns 5 which is equivalent to getting the value with data[1,2] (all good so far):

dataseries.GetZValue(yIndex: 1, xIndex: 2);

Now let’s update that value to, say 7.1, with:

dataseries.UpdateZValue(xIndex: 2, yIndex: 1, zValue: 7.1);

Executing the above line throws an IndexOutOfRangeException. Looking at the source code, the UpdateZValue() method does:

_zValues[xIndex, yIndex] = zValue;
// ...

No wonder why the exception gets thrown… I reckon it should be _zValues[yIndex, xIndex] = zValue; (xIndex and yIndex swapped).

Showing 1 - 50 of 2k results