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

0 votes
0 answers
8 views

I’m able to style the AxisLabelContainerStyle and AxisLabelTemplate for my TimeSpanAxis but it doesn’t seem to be working for my NumericAxes/NumericAxisViewModels. Attached is a photo showing the styled TimeSpanAxis (cyan) and the default NumericAxis (green).

Here are the templates:

<Style TargetType="{x:Type sci:AxisLabelControl}" x:Key="CursorAxisLabelStyle">
        <Setter Property="Background" Value="Black" />
    </Style>
    <DataTemplate DataType="{x:Type sci:AxisInfo}" x:Key="CursorNumericAxisLabelTemplate">
        <Border BorderBrush="DarkCyan" BorderThickness="1">
            <TextBlock Foreground="Cyan" Margin="2" Text="{Binding DataValue, StringFormat={}{0:0.0}}" />
        </Border>
    </DataTemplate>
    <DataTemplate DataType="{x:Type sci:AxisInfo}" x:Key="CursorTimeSpanAxisLabelTemplate">
        <Border BorderBrush="DarkCyan" BorderThickness="1">
            <TextBlock Foreground="Cyan" Margin="2" Text="{Binding DataValue, StringFormat={}{0:hh}:{0:mm}:{0:ss}}" />
        </Border>
    </DataTemplate>

Here are the styles for the axes:

<Style TargetType="{x:Type sci:NumericAxis}">
        <Setter Property="sci:CursorModifier.AxisLabelContainerStyle" Value="{StaticResource ResourceKey=CursorAxisLabelStyle}" />
        <Setter Property="sci:CursorModifier.AxisLabelTemplate" Value="{StaticResource ResourceKey=CursorNumericAxisLabelTemplate}" />
    </Style>
    <Style TargetType="{x:Type sci:TimeSpanAxis}">
        <Setter Property="sci:CursorModifier.AxisLabelContainerStyle" Value="{StaticResource ResourceKey=CursorAxisLabelStyle}" />
        <Setter Property="sci:CursorModifier.AxisLabelTemplate" Value="{StaticResource ResourceKey=CursorTimeSpanAxisLabelTemplate}" />
    </Style>

I will note that I’m binding my YAxes to an ObservableCollection because throws a binding error. But I’ve also tried using {x:Type sci:NumericAxisViewModel} which doesn’t work because it doesn’t derive from “FrameworkElement” and <x:Type sci:NumericAxisForMvvm} doesn’t style either.

I’m just not sure how to best make the NumericAxes styled.

Thanks!

0 votes
0 answers
13 views

Hi,

In past versions of SciChart JS I was able to run a webpack-built set of static files on an Nginx-based Docker container without issues.

I’m now seeing the error “memory access out of bounds” (screenshot attached) when doing this, and as a result does not render the charts at all, whether it’s running locally or hosted on AWS. This happens in both Chrome and Firefox.

It runs absolutely fine using webpack dev server.

The error seems to be coming from scichart2d.wasm. Any ideas?

Thanks
Joe

0 votes
0 answers
21 views

Hello,

I am having some difficulties using a custom DateTickProvider.

I am trying to offset the values to “anchor” the chart to specific local time (see original question at “https://www.scichart.com/questions/android/axis-value-anchor” for details)

class CustomDateTickProvider() : DateTickProvider() {
    override fun updateTicks(minorTicks: DoubleValues, majorTicks: DoubleValues) {
        // super appears to sometimes recalc based on GMT, and sometimes provide offsets from my previous offsets.
        super.updateTicks(minorTicks, majorTicks) 

       // My offset code here, assumes tick values are GMT based...
    }
}

My code usually works, but sometimes it doesn’t. It appears that when I call super.UpdateTicks(..), it usually generates new ticks based on GMT, but sometimes it simply provides a small offset (like when I pan) based on existing tick values. Is that correct?

Is there a way for me to Force updateTicks to always recalculate based on GMT, or a way for me to tell if updateTicks is recalculating based off GMT or just doing offsets on the existing tick marks?

Or should I be going at this in a different direction?

Thank you.

1 vote
0 answers
37 views

Try to integrate new SciChart.xcframework 4.2.0 instead of SciChart.framework 2.0 to the project and build failed in Xcode 12.4 with the next errors:
RNSciCandlestickChart.swift:
1) 335th line: Editor placeholder in source file
dates.add(date!))
2) 549th line: Cannot convert value of type ‘Bundle.Type’ to expected argument type ‘Bundle’ SCIThemeManager.addTheme(byThemeKey: theme, from: Bundle)
3) 768th line: Method does not override any method from its superclass
override func internalHandleGesture(_ gestureRecognizer: UIGestureRecognizer)
AnnotationDragListener.swift:
1) 4th line: Cannot find type ‘SCIAnnotationDragListener’ in scope
class AnnotationDragListener: SCIAnnotationDragListener
RNSciLineChart.swift:
1) 475th line: Editor placeholder in source file
SCIThemeManager.addTheme(byThemeKey: theme, from: Bundle)
Can you tell me please can I launch SciChart.xcframework 4.2.0 in Xcode 12.4? Any how to solve this issues?

1 vote
44 views

What’s the new (Swift) signature for V2’s updateDataContext(withContext label: SCIDefaultTickLabel!, data dataValue: SCIGenericType, style: SCITextFormattingStyle!) -> SCITickLabelProtocol!? Obviously the SciGenericType is different.

My searches aren’t pulling up anything except hits on the V2 documentation, and all of those now 404.

I’m using that call to put gesture recognizers on some tick labels. I want those gesture recognizers to be different than the one I’m putting on the entire chart. And I need to update the locations every time theX axis changes. An alternate way to achieve this would also be welcome.

1 vote
35 views

In Scichart 2, we had some code that added some annotations in the SCIAnimation completion block. Here’s a snippet. We need the self.renderAnnotations() to happen AFTER the chart data range is set, because we only draw annotations that will fit within the individual bar stack elements.

        SCIUpdateSuspender.usingWithSuspendable(sciChartSurface) {
            if hasBarData {  
                self.sciChartSurface?.renderableSeries.add(columnCollection)
                let animation = SCIWaveRenderableSeriesAnimation(duration: 1, curveAnimation: .easeOut)
                animation.completionHandler = {
                    self.renderAnnotations()
                    self.configurationButtons?.forEach { $0.isUserInteractionEnabled = true }
                }
                columnCollection.addAnimation(animation)
            }

Here’s the current rewrite to run under Scichart 4. With this code, yAxisLeft.visibleRange has not been updated to the correct data range when renderAnnotations() is called.

Uncommenting the 3 animator-related lines near the bottom doesn’t make a difference, and my listener function is never called.

I’ve also tried wrapping the renderAnnotations() call in a DispatchQueue.main.asyncAfter() call. That sometimes works, and sometimes results in renderAnnotations() not being called at all.

How do I get renderAnnotations() (and the following line looping on configurationButtons) to run, reliably, after the axis range setup is complete?

How do I get my wave animation back?

        SCIUpdateSuspender.usingWith(sciChartSurface) {
            if hasBarData { 
                self.sciChartSurface?.renderableSeries.add(columnCollection)
                    self.renderAnnotations()
                self.configurationButtons?.forEach { $0.isUserInteractionEnabled = true }
//                let animator = SCIAnimations.createWaveAnimator(for: columnCollection)
//                animator.add(self)
//                animator.start()
            }
0 votes
51 views
0 votes
38 views

pointMarker max and min values marker are cropped when autoRange is enabled. Check the attached image.

0 votes
37 views

Hello again,

Pardon me if I’m missing something obvious, but I am trying to center align a multiline tick label. I want both lines of the label to be centered. By default they seem to be left-justified. See attached image of current behavior.

xAxis = DateAxis(this)
xAxis.textFormatting = "h:mma\nMMM d" 

Thank you.

  • C Bolton asked 5 days ago
  • last active 5 days ago
0 votes
55 views

I was looking over Tutorial 07 – Tooltips and Legends and the Chart Legends API demo, and noticed that the checkboxes and legend font had some styling applied. But, when I implement a legend on my own it uses the default font (or whatever global font style I used) and the default HTML checkbox styling. I was wondering if you had modified the styling using an outside CSS file, if there is an API endpoint for modifying the styling of the legend, or if this is possibly a bug. I did see that there was an applyTheme() method available, but I thought that it might not apply to this situation. I also tried to look through the example code provided for the Chart API Demo, but I couldn’t find anything that pointed one way or the other.

I have attached screenshots of what the legend looks like in the two examples, as well as a screenshot of what the legend looks like when I implement it on my own. I have also included a zip file with the demo application I created.

Thanks,
Drew

0 votes
52 views

Good day guys. I have download SciChart_iOS_SDK_4.2.0.5533 on Macbook M1. And try to integrate ios-arm64_armv7 verions to my project. I have added SciChart.xcframework to frameworks in Xcode 12.4. But the build is failed with a few errors:

  1. unable to load standard library for target arm-64-apple-ios9.0
  2. Failed to build module ‘SciChart’ from its module interface, it may have been damaged or it may have triggered a bug in Swift compiler when it was produced.

Can you tell me please did I use the right version of SciChart.xcframework for apple silicone? And how to solve this errors?

0 votes
44 views

Good day! I have download this zip archive SciChart_iOS_SDK_4.2.0.5533.zip, on my laptop. Opened it and can not find the file SciChart.xcframework, according description from this article. I need to add library to Xcode frameworks, but I can not do it. Please can you tell me where can I get this file.

0 votes
70 views

Do scichart supports microsoft blazor ?
If yes, Any examples available ?

0 votes
50 views

I’m not sure if I’m understanding the Axes minorsPerMajor behavior correctly, or if this is a Scichart issue.

Using a “vanilla” axis like:

xAxis = DateAxis(this)
xAxis.drawMajorGridLines = false
xAxis.drawMinorGridLines = false
xAxis.drawMajorTicks = true
xAxis.drawMinorTicks = false
xAxis.textFormatting = "h:mma\nMMM d"
xAxis.subDayTextFormatting = "h:mma\nMMM d"
xAxis.minorsPerMajor = 1 // does not change # minor ticks no matter what it is set at, if drawMinorTicks = true
val xAxes: AxisCollection = chartSurface.getXAxes()
xAxes.add(xAxis)

If I set drawMinorTicks=false, I get no minor ticks, as expected. However, if I set it to true, I always get a bunch of ticks, no matter what I set minorsPerMajor to. I want just 1 mnor tick between majors. I’ve attached screenshots of the axis with drawMinorTicks set to both true and false using the above code.

Thanks for your assistance.

  • C Bolton asked 1 week ago
  • last active 1 week ago
0 votes
80 views

paletteProvider transparent colour is not working.

I tried with parseColorToUIntArgb(“#ffffff00”) and parseColorToUIntArgb(“#ffffff00”, 0) to replace the colour with transparent. But its not working.

I want ho hide the marker on the chart if the value is less than a limit. Is any other possibility to hide the marker based on value?
can you check the image, i want to show only the yellow marker.
one more error i am getting from typescript
“Type ‘undefined’ is not assignable to type ‘TPointMarkerArgb'”.

0 votes
73 views

If the y axis values are same then the lines are not visible on the chart and the labels are also not visible on the chart. Can you draw the lines on the middle of the chart to get more visible?

async initTrack() {
  const { wasmContext, sciChartSurface } = await SciChartSurface.create(
    "chart" + this.element
  );
  sciChartSurface.xAxes.add(
    new NumericAxis(wasmContext, { axisAlignment: EAxisAlignment.Top })
  );
  sciChartSurface.yAxes.add(
    new NumericAxis(wasmContext, {
      axisAlignment: EAxisAlignment.Left
    })
  );

  const dataSeries = new XyDataSeries(wasmContext);
  for (let i = 0; i <= 1000; i++) {
    dataSeries.append(i, 10);
  }

  const rendSeries = new FastLineRenderableSeries(wasmContext, {
    dataSeries: dataSeries,
    strokeThickness: 1,
    stroke: "red"
  });
  sciChartSurface.renderableSeries.add(rendSeries);
  sciChartSurface.chartModifiers.add(cursorModifier);

  return { wasmContext, sciChartSurface };
}
0 votes
66 views

Hi,
Im tried to convert date into xAxis using this tutorial

https://www.scichart.com/documentation/android/current/webframe.html#Axis%20APIs%20-%20Convert%20Pixel%20to%20Data%20Coordinates.html

but i got this error

Java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object com.scichart.data.numerics.math.IMath.fromDouble(double)' on a null object reference

here my code

https://gist.github.com/ngiyus/4590c009261a28dba2c8b10e123a97f3

0 votes
0 answers
109 views

I am tryng to use ScichartScrollbar,and in trouble.

When view port range is beyond data binded with scrollbar and center of the scrollbar is clicked,data jumps horizontally.
please refer to the Picture below.
I used official sample program named SciChart_PerAxisScrollbar in the picture.
How can I stop this and scroll seamlessly?

0 votes
95 views

Guys can you tell me please why I get this error after build on new `mac M1 chip and how to solve it:

error: unable to load standard library for target ‘arm64-apple-ios8.0’
/Users/nameuser/Projects/pojectname/ios/SciChart.framework/Modules/SciChart.swiftmodule/arm64.swiftinterface:1:1: error: failed to build module ‘SciChart’ from its module interface; the compiler that produced it, ‘Apple Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15)’, may have used features that aren’t supported by this compiler, ‘Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)’
// swift-interface-format-version: 1.0`

0 votes
0 answers
63 views

Hi SciChart,

using the default RolloverModifier with CandleStick Charts will add a white circle at the candle’s close position. Is it possible to change this position to the high/low value of this candle? I’ve tried with a derived RolloverModifier and found the AttachRolloverMarker function to override. But I’ve absolutely no idea how to proceed from there on.

Any help is greatly appreciated.

Thanks,

René

0 votes
0 answers
101 views

Hello,

I’m using the recommended function well, thank you.
By the way, can I control the shade shown in the picture?
What I want is not detailed but simple functions such as light On, Off, Up, Down.

Best regards

0 votes
98 views

I am getting a console error when using isVisible: false to the FastLineRenderableSeries or FastMountainRenderableSeries and CursorModifier together.

  const { wasmContext, sciChartSurface } = await SciChartSurface.create(
    "chart" + this.element
  );
  sciChartSurface.xAxes.add(
    new NumericAxis(wasmContext, { axisAlignment: EAxisAlignment.Top })
  );
  sciChartSurface.yAxes.add(
    new NumericAxis(wasmContext, {
      axisAlignment: EAxisAlignment.Left,
      growBy: new NumberRange(0.4, 0.4)
    })
  );

  const dataSeries = new XyDataSeries(wasmContext);
  const POINTS = 1000;
  const STEP = (3 * Math.PI) / POINTS;
  for (let i = 0; i <= 1000; i++) {
    const k = 1 - i / 2000;
    dataSeries.append(i, Math.sin(i * STEP) * k * 0.7);
  }

  const rendSeries = new FastLineRenderableSeries(wasmContext, {
    dataSeries: dataSeries,
    strokeThickness: 1,
    stroke: "red",
    isVisible: false
  });
  sciChartSurface.renderableSeries.add(rendSeries);
  // sciChartSurface.background = this.color;

  sciChartSurface.chartModifiers.add(
    new ZoomExtentsModifier(),
    new ZoomPanModifier(),
    new MouseWheelZoomModifier()
  );

  // Add CursorModifier behavior
  const cursorModifier = new CursorModifier({
    crosshairStroke: "#ff6600",
    crosshairStrokeThickness: 1,
    tooltipContainerBackground: "#000",
    tooltipTextStroke: "#ff6600",
    showTooltip: true,
    axisLabelsFill: "#b36200",
    axisLabelsStroke: "#fff"
  });
  sciChartSurface.chartModifiers.add(cursorModifier);

  sciChartSurface.zoomExtents();
  return { wasmContext, sciChartSurface };
0 votes
124 views

Hi,

we updated to version 6.3 and since then the VisualXcceleratorEngine is no longer used. The fallback type ‘HighQualityRenderSurface’ is always used. What about the auto-select feature for the best GPU?

This is the code we use to check whether DirectX is used:

using (var sciChartSurface = new SciChartSurface())
{
    sciChartSurface.OnRenderException += OnSciChartRenderException;

    VisualXcceleratorEngine.SetIsEnabled(sciChartSurface, true);
    VisualXcceleratorEngine.SetFallbackType(sciChartSurface, typeof(HighQualityRenderSurface));
    VisualXcceleratorEngine.SetDowngradeWithoutException(sciChartSurface, false);
    VisualXcceleratorEngine.SetEnableImpossibleMode(sciChartSurface, true);

    if (sciChartSurface.RenderSurface.GetType() == typeof(VisualXcceleratorRenderSurface))
    {
        // DirectX is enabled!
        retval = true;
    }
    else
    {
        // Restart 2D engine with D3D9   
        VisualXcceleratorRenderSurface.RestartEngineWith(DirectXMode.DirectX9c);

        // For 3D Charts only: Restart 3D engine with D3D9
        //Viewport3D.Restart3DEngineWith(DirectXMode.DirectX9c, FullScreenAntiAliasingMode.None, true);

        VisualXcceleratorEngine.SetIsEnabled(sciChartSurface, true);
        VisualXcceleratorEngine.SetFallbackType(sciChartSurface, typeof(HighQualityRenderSurface));
        VisualXcceleratorEngine.SetDowngradeWithoutException(sciChartSurface, false);
        VisualXcceleratorEngine.SetEnableImpossibleMode(sciChartSurface, true);

        if (sciChartSurface.RenderSurface.GetType() == typeof(VisualXcceleratorRenderSurface))
        {
            // DirectX is enabled!
            retval = true;
        }
    }

    sciChartSurface.OnRenderException -= OnSciChartRenderException;
}

What can I do?

Regards

  • Tobias asked 3 weeks ago
  • last active 1 week ago
1 vote
79 views

Hi,

I have a uniform heatmap with multiple ’tiles’ of data loaded in, by using multiple UniformHeatmapDataSeries / UniformHeatmapRenderableSeries.

The user is allowed to pan around/zoom around the heatmap.

I want to build two charts to display the ‘visible heatmap average’, one for each axis. For example, I would display a line chart underneath the heatmap. The first point on this line chart would represent the average value of all cells in the first column of the heatmap – I need this to take into account all of the UniformHeatmapDataSeries that are currently in the viewport, treating them as a singular heatmap.

I’ve seen the NumericAxis.getCurrentCoordinateCalculator(), which looks promising, but I’ve not yet worked out if that can do what I need.

Any thoughts on the best approach?

Thanks
Joe

  • Joe Brady asked 3 weeks ago
  • last active 2 weeks ago
1 vote
91 views

Hi,

In the documentation I can’t see any way to make a chart surface fill the available space in all directions.

By default, it fills the available horizontal space, but the ratio of width:height remains fixed.

The only example I’ve seen where this is slightly different is this JS example, where the width flexes independently to fit the available space: https://demo.scichart.com/javascript-2d-3d-chart-tenor-curves-example – I’m not sure exactly what part of the code makes this different to the other examples?

My goal is to allow the user to adjust the height and width of any chart themselves by dragging the size of the container div, with the chart surface ideally just filling the space in a ‘dumb’ way, rather than using JS to manually update the chart size during the drag event.

Thanks,
Joe

  • Joe Brady asked 3 weeks ago
  • last active 2 weeks ago
0 votes
120 views

Hi,

I want to draw the shape of the waveform that stretches out from one point.
I tested it using ‘CreateEllipsoidMesh3DChartFragment’ from example source, but I found problem.

I initialized the displacement value to 0, and entered the displacement value of the point I wanted.
In the image I uploaded, the coordinates are symmetrical, but the shape is different.

Is there a rule that connects coordinates when you draw a triangle?
Is there any way I can control this?

I have attached the image and code.

best regards, Thank you

  • Mobile SW4 asked 3 weeks ago
  • last active 3 weeks ago
0 votes
0 answers
99 views

Hi,

Using a tooltip with a LineSeries with an Logarithmic Y-axis, seem to give widely inaccurate results.

The series is as follows:

double[] x = new double[] { 1, 1.0e1 , 1.0e2 };
double[] y = new double[] { 615.9, 275.6197, 11.05376};

Using a CursorModifier as follows:

<s:CursorModifier ShowAxisLabels="True" UseInterpolation="True" SnappingMode="CrosshairToSeries" ShowTooltip="True"/>

The expected behaviour would be for the Crosshair to follow the curve, but for some reason it’s some way off. It looks as if it’s following Y-values which are somewhat truncated. X-values are fine for some reason.

Is there are a way to increase the resolution of the Y-values so the user gets the correct value when using a tooltip.

0 votes
148 views

I am getting a console error when using isVisible: false to the FastLineRenderableSeries or FastMountainRenderableSeries and CursorModifier together.

0 votes
0 answers
87 views

We’re using ReactiveUI and bindings in code-behind. We’re now upgrading from SciChart v3 to v6 and we’re wondering how to use the SeriesBinding in code-behind like this:

public partial class BarChartView : ReactiveUserControl<sBarChartViewModel>
{
    public BarChartView()
    {
        InitializeComponent();

        this.WhenActivated(disposable =>
        {
            this.OneWayBind(ViewModel,
                            vm => vm.SeriesSource,
                            view => view.BarChart.SeriesSource)
                .DisposeWith(disposable);

            this.OneWayBind(ViewModel,
                            vm => vm.LabelProvider,
                            view => view.FaciesAxis.LabelProvider)
                .DisposeWith(disposable);

            this.OneWayBind(ViewModel,
                            vm => vm.TooltipDataContext,
                            view => view.TooltipModifier.TooltipLabelDataContextSelector)
                .DisposeWith(disposable);

            this.OneWayBind(ViewModel,
                            vm => vm.XAxisRange,
                            view => view.FaciesAxis.VisibleRange)
                .DisposeWith(disposable);
        });
    }
}

Now the IChartSeriesViewModel and SciChartSurface.SeriesSource is deprecated so we have to move to IRenderableSeriesViewModel instead and then bind to SciChartSurface.RenderableSeries. But how can we convert from IRenderableSeriesViewModel to IRenderableSeries here?

0 votes
121 views

Multiple instances of sci chart any appearance changes reflecting on other instances. When I changed the background of one instance the same is reflected in the other instance. I have updated with createSingle to resolve this issue, But i am getting one alert when using createSingle.

0 votes
108 views

Hey guys,

As you already know, I’ve implemented a wrapper of scichart.

In a clear Nuxt project, I can get the scichart.data / scichart.wasm files very well. Have no problems with that at all.

But on my current project, we can’t implement this because some dependency is missing from scichart. And without your code, I really don’t know how to get into it.

The image is on attachments. Can you help us?

Many thanks,

Pedro Cruz

  • Pedro Cruz asked 3 weeks ago
  • last active 2 weeks ago
0 votes
0 answers
94 views

Dear sir,

I’m trying SciChartSurface.
I wanna have a Chart updating per minute,
X-Axis means time, Y-Axis means products,
and every product has a multi-color bar which I can build it in the viewmodel.
Every product’s name should be the position between two lines.
Can SciChart do that…? Cause I’m using surface with numericAxis, but the product name is always next to the line, not between two lines.

0 votes
157 views

ZoomPanModifier date format charts zoom out continuously then showing NaN on the scale. It happened because the zoom level goes under the invalid date. Can you add the Minimum Zoom/Pan and Maximum Zoom/Pan area to be configured on options?

0 votes
0 answers
103 views

I would like to know if there is an option to create chart with an arc lines grid in addition to the regular grid.
I’ve attached the sample. the question is referred to the white arc lines.
the blue lines need to be paint too.
all of this lines need to be as background, the same size as display in the picture.

0 votes
145 views

Hi,
Im tried to convert date into xAxis using this tutorial

https://www.scichart.com/documentation/android/current/webframe.html#Axis%20APIs%20-%20Convert%20Pixel%20to%20Data%20Coordinates.html

but i got this error

Java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object com.scichart.data.numerics.math.IMath.fromDouble(double)' on a null object reference
0 votes
152 views

when loading first data everything goes fine
growby max padding as expected (Image1)

but i added realtime data and data grow, it show strange behaviour, padding more than i expected. (image2)

final IAxis xAxis = sciChartBuilder.newCategoryDateAxis().withVisibleRange(xVisibleRange).withGrowBy(0.1,0.1).build();

ZoomPanModifier zoomPanModifier = new ZoomPanModifier();
zoomPanModifier.setClipModeX(ClipMode.ClipAtExtents);
zoomPanModifier.setClipModeTargetX(ClipModeTarget.MaximumRange);

any workaround? thanks

0 votes
151 views

Screenshots attached.

To recreate:

  • Create a chart
  • Add a CursorModifier – default options is fine
  • Either directly remove the modifier using .remove(modifier), or clear all using .clear()

Expected behaviour:
– Should remove the cursor modifier

Actual behaviour with bug:
– Crashes the page

This appears to be an issue with CursorModifier only (out of the 5 or 6 that I’ve tried). Other modifiers work as expected.

Traced the issue to this.parentSurface being undefined in CursorModifier.js, so when onDetach() is called, it errors.

Thanks!
Joe

  • Joe Brady asked 4 weeks ago
  • last active 15 hours ago
0 votes
181 views

Getting an exception when trying to add tooltip template MVVM style to a blox plot. The chart also contains a scatter plot which should not be styled. That works fine, hoverwer, when I move the mouse over a box in the box plot, the exception is thrown.

I want to keep the styling, I just want to write something different than the default text.

The template:

  <DataTemplate DataType="scalarPlot:ToolTipData" x:Key="BoxSeriesTooltipTemplate">
    <TextBlock>
      <Run Text="Max:      " />
      <Run Text="{Binding Maximum}" />
      <LineBreak />
      <Run Text="P90:       " />
      <Run Text="{Binding P90}" />
      <LineBreak />
      <Run Text="Median: " />
      <Run Text="{Binding Median}" />
      <LineBreak />
      <Run Text="P10:       " />
      <Run Text="{Binding P10}" />
      <LineBreak />
      <Run Text="Min:       " />
      <Run Text="{Binding Minimum}" />
      <LineBreak />
    </TextBlock>
  </DataTemplate>

The binding:

      <Style TargetType="s:BaseRenderableSeries" x:Key="BoxSeriesStyle">
        <Setter Property="s:TooltipModifier.TooltipTemplate" Value="{StaticResource BoxSeriesTooltipTemplate}"/>
        <Setter Property="s:TooltipModifier.IncludeSeries" Value="True"/>
      </Style>

The modifier:

<s:SciChartSurface.ChartModifier>
      <s:ModifierGroup>
        <s:TooltipModifier IsEnabled="True" ShowTooltipOn="Always" ReceiveHandledEvents="True" TooltipLabelDataContextSelector="{Binding ToolTipDataContext}"/>
      </s:ModifierGroup>
    </s:SciChartSurface.ChartModifier>

The view model:

    private static IRenderableSeriesViewModel CreateBoxPlotViewModel(BoxPlotDataSeries<int, float> boxPlotDataSeries)
    {
        return new BoxPlotRenderableSeriesViewModel
        {
            DataSeries = boxPlotDataSeries,
            Stroke = Colors.SteelBlue,
            Fill = new LinearGradientBrush(Colors.White, Colors.LightSteelBlue, new System.Windows.Point(0, 0), new System.Windows.Point(0.5, 1)),
            StyleKey = "BoxSeriesStyle"
        };
    }

The data context selector:

    public Func<SeriesInfo, object> ToolTipDataContext
    {
        get
        {
            return seriesInfo =>
                   {
                       return seriesInfo switch
                       {
                           BoxPlotSeriesInfo boxInfo =>
                               new ToolTipData
                               {
                                   Fill = seriesInfo.Fill,
                                   Stroke = seriesInfo.Stroke,
                                   Maximum = (float) boxInfo.MaximumValue,
                                   P90 = (float) boxInfo.UpperQuartileValue,
                                   Median = (float) boxInfo.MedianValue,
                                   P10 = (float) boxInfo.LowerQuartileValue,
                                   Minimum = (float) boxInfo.MinimumValue
                               },
                           _ => seriesInfo
                       };
                   };
        }
    }
  • Tore Munch asked 4 weeks ago
  • last active 3 weeks ago
0 votes
0 answers
112 views

Hi, Yura

Thank you for answer.
But, the dataSeries you told me is not suitable for me.
(The example uses the following data series. EllipsoidDataSeries3D, CustomSurfaceDataSeries3D, CylindroidDataSeries3D, PolarDataSeries3D, UniformGridDataSeries3D)

I want to make it through a data series where I can put coordinates myself, like ‘XyzDataSeries3D’. If you set ‘XyzDataSeries3D’ from ‘FreeSurfaceRenderableSeries3D’, Exception will occur.

For example, what should I do if I want to implement the following shapes as solid?
(0,0,0), (0,0,1), (2,0,0), (2,0,1), (0,3,0), (0,3,1), (2,3,0), (2,3,1).

If the above is not possible, is there a way to draw in 3D chart a triangle as solid connected by the following coordinates?
(x1, y1, z1), (x2, y2, z2), (x3, y3, z3) .
If possible, I think can make a polyhedron by connecting it.

best regards, thank you.

0 votes
191 views

Hi,
How can I programmatically prevent panning, zooming, yaw, pitch movements on the screen whenever I want?

Best regards…

0 votes
0 answers
121 views

Hello!

I have data to display XyDataSeries, they have parameters: SeriesName and Tag. I want to bind the text of the tooltip to the Tag parameter, but for some reason an error pops up. Everything works correctly with the SeriesName.
I understand this is due to the data type, Tag-object, SeriesName-string. But how do I properly convert to the desired type, or is this not the problem?

When installing the vertical slice with the Tag parameter instead of SeriesName, errors occur:
The Tag property was not found for an object of the XySeriesInfo type.
Can’t find the control FrameworkElement or FrameworkContentElement for the target element.

0 votes
123 views

Hello!

I want to draw an irregular polyhedron in 3D chart. And I know the coordinates for each vertex.
However, I couldn’t find the appropriate API.
please, need a API or a guide to help me…

best regards, Thank you

  • Mobile SW4 asked 4 weeks ago
  • last active 4 weeks ago
0 votes
151 views

Hello,

we plan to generate reports containing SciChart charts, so we can re-use the chart components we show in our web-application. We did the same successfully in the past with SciChart for WPF.

So far I didn’t find any special support to generate high quality print output (and printing for js charts in general). Using the web-browsers print function the charts are rendered as bitmaps at screen resolution. In SciChart for WPF you provide a Vector Rendering Plugin which we used for printing (as described here https://support.scichart.com/index.php?/Knowledgebase/Article/View/17263/40).

Is there already support for high quality rendering in SciChart.js or do you have plans for it and maybe a timeline when to expect it?

I found one issue when printing from the example charts (https://demo.scichart.com/javascript-line-chart). After opening with a new browser window, on the first print the page content in the print dialog is most times empty but after reloading (F5) it is apparently always shown. I don’t know yet if this would be an issue when rendering to a PDF which we plan, but I think this should always work at the first time a page is loaded. Tested with current Chrome (88.0.4324.104) and Edge (88.0.705.56).

I wanted to attach a .png screenshot (435 KiB) but it didn’t work (a progress bar runs to 100% but then the file list is still empty tried file selection and drag&drop ). I think the issue should be understandable without a screenshot?

Update
I could add the image using the edit function.

Greetings,

Nils

0 votes
0 answers
134 views

Hi,

We would like to add a vertical line on the month end, and display CategoryDateTime axis label as DD (instead of HH:MM) on the month end date.

We would like to avoid using vertical line annotations (read somewhere in the forum that they are WPF elements, and can potentially make chart slower).

I have tried going through the LabelProvider classes, but don’t see a concrete example on how it should work when we apply zoom in zoom out – We would like to keep existing axis labeling behavior intact.

Regards,
Vinay

0 votes
156 views

Hi,

is it possible to have same colors on my volume chart based on OHLC chart (red Green)? One option I see is to create a dependency property, and bind to OHLC Series data source to my VolumePalletteProvider? Is there any pre-existing way, without requiring me to bind to OHLC Series source?

public class VolumePallettProvider : IStrokePaletteProvider, IFillPaletteProvider
{
    Color _sbC = Colors.LightPink;
    SolidColorBrush _sb = Brushes.Transparent;

    public void OnBeginSeriesDraw(IRenderableSeries series)
    {
        _sbC = (Color)ColorConverter.ConvertFromString("#FF713232");
        _sb = (SolidColorBrush)new BrushConverter().ConvertFromString("#FFB75252");
    }

    public Brush OverrideFillBrush(IRenderableSeries rSeries, int index, IPointMetadata metadata)
    {
        var series = rSeries.DataSeries as XyDataSeries<DateTime, double>;
        var value = null != series ? series.YValues[index] : 0;
        value = !Double.IsNaN(value) ? value : 0;
        if (value < 0)
            return _sb;
        return null;
    }

    public Color? OverrideStrokeColor(IRenderableSeries rSeries, int index, IPointMetadata metadata)
    {
        var series = rSeries.DataSeries as XyDataSeries<DateTime, double>;
        var value = null != series ? series.YValues[index] : 0;
        value = !Double.IsNaN(value) ? value : 0;
        if (value < 0)
            return _sbC;
        return null;
    }
}
0 votes
200 views

Do you have any examples with configurating sci chart component in asp.mvc project. Ideally I’d not want to use any of the node.js pipeline and I just want to add set of javascript files to my project.

0 votes
187 views

I would like to change the backgound color of my piechart.

const sciChartPieSurface = await SciChartPieSurface.create(props.chartName);
sciChartPieSurface.applyTheme(new SciChartJSLightTheme());

This code above doesnt change anything.

0 votes
235 views

On Vertical chart Label overlapping on smaller height. I have tried maxAutoTicks also and on the lower height, it’s getting one error. This error is occurring when the width is 0 sometimes. Can you please check this issues?

0 votes
168 views

Please tell me how to add the ability to use multiple touch. The goal is that when the user touches the screen in two places at the same time, two lines appear on the graph. I would like to understand whether this is possible?

0 votes
160 views

Hello guys,

Can you provide an example how to implement scichart on SSR Frameworks like Nuxt or Next.js ? I am trying to understand how i can compile a simple chart using Nuxt, getting the .data/.wasm file but i have problem after building process.

Can you help?

Many thanks

Pedro Cruz

  • Pedro Cruz asked 1 month ago
  • last active 2 weeks ago
Showing 1 - 50 of 3k results