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

1 vote
0 answers
57 views

Hi scichart team,

Im unable to add a per point coloring to UniformHeatMap series using paletteProvider, it just doesnt seem to work

Also im using DataPointSelectionModifier and im only able to select one point at a time, unable to select multiple points onSelectionChanged and also drag selection is not working for multi select as well.

My goal is to select and highlight multiple cells/tiles in a UniformHeatMap series

please respond with a solution

Thanks

1 vote
18k views

From what I’ve read into chrome’s roadmap, everything seems on track for a webgpu release in May.
Is scichart taking this into account and planning to add webgpu support?
I suspect this would make quite an impact on performance, so it would be a great addition.

Thanks!

1 vote
421 views

3D tooltips seem to return incorrect Z axis values when points / regions are at the edge of the surface. Errors are also logged to the console.

This issue is visible on the official example available at https://www.scichart.com/documentation/js/v5/3d-charts/chart-modifier-3d-api/tooltip-modifier-3d/

1 vote
0 answers
176 views

Hi SciChart team,

Is it possible to have multiple overview slider chart each for one axis

for example a vertical slider that controls the visible range of one of the Y axis and one slider just for X axis ??

I know that we have a scroll/drag on axes labels to zoom in and out but can we specifically do it with overview Slider ?

0 votes
256 views

In SciChart JS there doesn’t appear to be a Javascript version of NonUniformGridDataSeries3D.

As this exists in WPF, can the logic just be ported across or made publicly available?

1 vote
13k views

I migrated my project from .net 4.7.2. to .net 6.0 using the upgrade-assistant from Microsoft.
Now I get the exception:
“Strong name validation for the assembly ‘SciChart.Charting’ failed. Assembly not strong-named or is tampered. Verification via API failed”

0 votes
394 views

Expected: While panning over x-axis, column width stays visually constant and empty data ranges remain visually empty.
Actual: When the visible x-axis range contains little or no data, stacked columns grow very wide to fill the available space.

Any ideas how to disable auto-stretch of columns?

1 vote
528 views

Hi scicharts team,

For our application we have a point and series selection feature for a Line Chart but i have noticed that When i select a point and highlight it, Series selection changed function also gets triggered even though i didnt want to select the series.

Is there any work around for this that can suppress the sereis selection when clicking data point ?

1 vote
498 views

Why is there such a huge difference between the 3D charts available in Javascript versus WPF?

If the charts are meant to use the same engines behind the scenes, why are the available charts not equivalent?

1 vote
454 views

I’m seeing a delay the first time I add a chart to scichart:SciChartSurface. Subsequent loads are much faster. It looks like the initial initialization is taking time—what can I do to reduce or eliminate this first-load delay?

where ChartDocumentControl

1 vote
582 views

I’m trying to find a way to apply a colour gradient to an existing FastLineRenderableSeries in the app. We want the colours in the gradient to align to specific y-axis values (see attached image)

0 votes
411 views

How to change background and text color of the boxes with the values appearing when presenting tooltip?
Currently the box is green and text color is white as shown in the picture.

1 vote
0 answers
277 views

3D Surface charts accept a MeshColorPalette provided by a GradientColorPalette or SolidColorPalette but both of these seem to be driven by the Y values of the chart itself.

Is there a way to configure a palette based on another series / set of data points? If no such palette exists can an example be provided of how to implement one?

0 votes
11k views

Hi,

I have an application where I can potentially create, plot and export (as png) hundreds of graphs. It all runs smoothly but the “ExportToFile” method of the SciChartSurface. It seems to never de-allocate the memory it uses even after disposing the SciChartSurface itself. After a few hundred graphs, the application ends up using 70Gb+ of ram but if I just comment out the ExportToFile line, the application never uses more than 2Gb of ram (as expected).

I’ve tried putting:
GC.Collect();
GC.WaitForPendingFinalizers();
…both after the ExportToFile and after disposing the graphs, but it makes no difference.

Has anyone experienced this issue? Is there anything else that I can try?

Thanks
/Daniel

1 vote
537 views

Hi scichart team,

is there any way i can render an overview chart with Stacked column chart ?
im getting the following error
Error: dataSeries property is not supported for BaseStackedCollection
at StackedColumnCollection2.get

i tried rendering some other type of series in overview but does not seem to work with stacked columns

0 votes
2k views

Does SciChart support AvaloniaUI?

Is it also possible to use it in flutter?

  • Jin Taeic asked 11 months ago
  • last active 2 months ago
1 vote
12k views

I’m trying to render a column chart with multiple series. I want the two series to show side-by-side. See the reference image attachment for how I want it to look.

However, when I add a second series to a surface, the two series overlap and draw over each other, such that you can ‘t see some of the column data points.

Is there a way to draw multiple series that don’t overlap?

While I’m here, a have a couple of more questions:

ÔÇó Is there a way to show more of the values on the time/date series X-axis . Notice in the SciChart column chart that is attached it shows every third value on the X-axis (Jan, April, July, October). It would be great if I could show every two, or all for each data point.

ÔÇó For a time/date series X-axis, can I show a different representation of the time/date values? Specifically, I want to show, e.g.

Jan 17

rather than

01-2017

Presumably one would specify a different date formatter but I only see how to do variations of “MM-dd-yyy”. I want to show values as textual rather than numeric.

ÔÇó┬áIs there a way to extend the Y-axis to go higher?
In the SciChart column chart attachment, the Y-axis goes up to 100, but the values go higher. I would like to show the the Y-axis going up to 120.

ÔÇó Is there a way to change the interval of the Y-axis?
Instead of showing every 20 values, can I show every 25 values?

Thanks.

  • doughill asked 9 years ago
  • last active 2 months ago
1 vote
635 views

Hello SciChart Team,

I’m experiencing an unexpected behavior when using a BoxAnnotation with a LogarithmicAxis on the Y axis.
When I drag the annotation by its body, it does move across the chart as expected. However, at the same time, the annotation also changes its size (it increases or decreases while being dragged).

This behavior does not occur when using a NumericAxis. With NumericAxis, dragging the body moves the annotation without altering its dimensions.
I Use the official BoxAnnotation example as reference:
https://www.scichart.com/documentation/js/v5/2d-charts/annotations-api/box-annotation/

Change only the Y axis from NumericAxis to LogarithmicAxis.
Drag the annotation by its body.
Observe that while the annotation moves, its height changes simultaneously.

Here is a minimal CodePen demonstrating the issue:
https://codepen.io/gaulions/pen/jErgZmL

The only changes from the official example are:
Switching the Y axis to LogarithmicAxis
Adding isEditable: true

Could you please confirm whether this is the expected behavior when using a LogarithmicAxis, or if this might be a bug?

Thank you.

0 votes
523 views

Hello SciCharts team,

I would like to request a feature,
currently paletteProvider is not supported by FastBoxPlotRenderableSeries, which is useful for our case for visual feedback on selected box plots.

Kindly requesting you to add this feature,

Thanks, Regards

1 vote
551 views

Hello!

SciChart JS v3.

> sciChartSurface.renderableSeries.get(1).stroke = scoreColor;

where series is FastLineRenderableSeries.

Legend color box has still initial color.
Should we fire color sync manually somehow?
Legend placed in external container.

Many thanks

0 votes
1k views

Hello,
I am new to SciChart and wanted to try to implement one in a new test project for later projects.
I want to add a new chart to the normal blazor homepage.
I almost got it done and it currently looks like in the attached picture.
But I still get this error message: Unhandled exception rendering component: Cannot read properties of undefined (reading ‘SCRTDoubleVector’)
TypeError: Cannot read properties of undefined (reading ‘SCRTDoubleVector’).

I want the SciChart to initialize in my Home.razor file.
This is the code in my .js:

window.initializeSciChartWithSettings = async function () {
const {
SciChartSurface,
NumericAxis,
FastLineRenderableSeries,
XyDataSeries,
NumberRange
} = SciChart;

const { sciChartSurface, wasmContext } = await SciChartSurface.create("sciChartSurface");

sciChartSurface.xAxes.add(new NumericAxis(wasmContext));
sciChartSurface.yAxes.add(new NumericAxis(wasmContext));

const dataSeries = new XyDataSeries(sciChartSurface.engine, {
xValues: [1, 2, 3, 4, 5],
yValues: [1, 2, 3, 4, 5]
});

const lineSeries = new FastLineRenderableSeries(sciChartSurface.engine, {
dataSeries: dataSeries,
strokeThickness: 2,
stroke: "#2596BE"
});
sciChartSurface.renderableSeries.add(lineSeries);

window.sciChartSurface = sciChartSurface;
window.sciChartDataSeries = dataSeries;

return { sciChartSurface };
};

I really don´t know what to do and would be thankful for every awnser!

1 vote
16k views

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

  • Abhilash R asked 5 years ago
  • last active 2 months ago
1 vote
10k views

I’ve been trying to implement the scichart js blazor wrapper in a serverside application. The chart starts to load, but gives the following error:
Failed to load resource: the server responded with a status of 404 () :5001/scichart2d.data:1

it looks like scichart2d.data is in the wrong place, but as far as I can tell it’s where it should be (in wwwroot).

is there something special I need to do in sever side? I can get it working fine in webAssembly Blazor

0 votes
2k views

Hello,

I have a wpf application that has several SciChartSurface, each of which has a DateTime axis for the x-axis.
I am currently using MVVM to bind data to the axes.

I want to display a custom band on the x-axis but am having difficulty. depending on the data there could be one or more bands to display.

For example if the date range is from 2/3/2026-2/4/2026, there may be a band that needs to be shown from 2/3 10:00-11:00 and one from 2/3 14:00-14:25.

Can you point me to any examples that may show how to accomplish this?

Regards.

0 votes
3k views

We have discovered that Scichart is leaking memory on one of our machines.

Setting VisualXcceleratorEngine.IsEnabled=false prevents the memory leak.

In trying to produce a minimum reproduction I found that all I needed was a blank new WPF project with an empty SciChartSurface on it (https://grinstallers.blob.core.windows.net/public/Scichart%20Memory%20leak.zip as it would not let me attach it here).

Simply resizing the window would cause the leak. I have linked to a screen recording showing the leak occurring in real-time (https://grinstallers.blob.core.windows.net/public/Screen%20Recording%202024-11-21%20132048.mp4). The machine with the issue has an AMD Radeon RX 640 video card and I do not get the same leaking behaviour on another machine with Intel UHD Graphics 770. I have updated all drivers to the latest version and the leak still happens.

A memory dump of the process shows the majority of memory is unmanaged (Managed heap = ~450MB of 10GB).

I have gone back as far as version 8.0.0.27737 and the leaking behaviour is still there.

  • Eamon asked 1 year ago
  • last active 2 months ago
1 vote
12k views

Memory leak in Fifo mode with Visual Xccelerator Engine enabled.

Two screenshots with Visual Xccelerator Engine enabled and disabled.
In a real application, the behavior is repeated. GS.Collect does not solve the problem.

It looks like the problem occurs on the integrated video card. AMD. When switching to a discrete video card. Memory is stable.

0 votes
669 views

I have noticed in official demos as well that when using DataPointSelectionModifier with drag select the last index point wont get selected. This is really annoying as the click functionality works but only drag for last index does not

1 vote
13k views

I would like to create a level meter, maybe something like this:

https://www.howtoguides.co.uk/VU_meter.png

I assume a bar chart, but am looking for suggestions.
BTW, I just switched from OxyPlot to SciChart, what a difference! I am so impressed!

Thanks,
-Robert

0 votes
2k views

Hello SciChart Team,

I would like to report an issue regarding WebGL1 support in SciChart v5+.

I am aware that WebGL1 support was removed starting from v5, and that the engine now requires WebGL2.
However, in my environment this is a hard limitation, and WebGL1 is still required due to legacy hardware and GPU constraints.

I performed multiple tests and can confirm the following:

SciChart v3 works correctly using WebGL1

SciChart v5+ does not render or fails to initialize on the same machine

The browser reports that WebGL2 is not available, only WebGL1

The same chart logic and dataset work perfectly in v3, but fail in v5+

This confirms that the issue is not related to the chart configuration, data, or memory usage — the only difference is the WebGL backend requirement.

Unfortunately, in my case, upgrading the hardware or enabling WebGL2 is not possible at the moment, so WebGL1 compatibility is still necessary.

I would like to ask:

Is there any official or experimental fallback to WebGL1 in v5+?

Is there any internal flag, build option, or legacy bundle that still supports WebGL1?

If not, is there any recommended migration path for environments that do not support WebGL2?

Thank you very much for your attention and support.

Best regards,
Júlio Soares

0 votes
4k views

Hello,

I am trying to add multiple Y axis to this example:
https://github.com/ABTSoftware/SciChart.JS.Examples/blob/master/Examples/src/components/Examples/Charts2D/ModifyAxisBehavior/VerticallyStackedAxes/drawExample.ts

What I want to achieve is to add an additional Y axis which would display the index of the loop. I have tried to make the first yAxis isVisible to false and add the additional one but it seems that it creates a blank chart (extra blue lines in the image attachment) with the index label + the number range. At the end vertically stacked axes are doubled instead of showing just the index.
I am attaching the images and the running example. Maybe there is an easier way to show the index of the loop of the particular graph while not displaying the number range?

Any help would be kindly appreciated.

  • Zino As asked 2 years ago
  • last active 3 months ago
1 vote
15k views

I have created a chart that displays real-time instrument data with a sample arriving every 10ms or so. I am displaying this with a CateoryDateTimeAxis:

                <!--  Create an X Axis  -->
                <s:SciChartSurface.XAxis>
                    <s:CategoryDateTimeAxis  MinHeight="50" AutoRange="Always" VisibleRange="{Binding XAxisVisibleRange, Mode=TwoWay}"
                            AxisTitle="Time" DrawMinorGridLines="False" DrawMinorTicks="False"  TextFormatting="hh:mm:ss.ss">
                    </s:CategoryDateTimeAxis>
                </s:SciChartSurface.XAxis>

My probem is that the TextFormatting is ignored and I get labels in the form HH:mm which is not much use. Is there a way round this?

Secondly if I try to use a DateTimeAxis to show the actual times (with any gaps) the automatic scaling resets the axis to cover about two days.

Any guidance would be appreciated.

Mike

0 votes
1k views

I’m attempting to create a custom CursorModifier to display series information aggregated across multiple SciChart surfaces into a single tooltip. These surfaces are synced via the VerticalChartGroupId with the charts displayed as part of an ItemsControl using MVVM. The default behavior only shows information for the series in the subpane where the mouse is. This makes sense given the CursorModifier is local to the subpane and set via a DataTemplate assigned to the ItemsControl.ItemTemplate.

To create a “global” CursorModifier, I’m guessing I need to override the GetSeriesInfoAt method of CursorModifier. I have access to all the IRenderableSeriesViewModels across all the subpanes via the parent view model. My question is how can I access the appropriate SeriesInfo object for each of these renderable series in order to return an enumerable of SeriesInfo objects? These should be the appropriate derived type (e.g. OhlcSeriesInfo, BandSeriesInfo, etc.) so that my template selector can do its thing. Thank you!

Lawson

0 votes
1k views

Hello Team,

I am using Sci 2D chart(version 8.9.0.28766) in c# .net WPF MVVM. I have 3 Fastline series with more than 16400 points changing every 2 sec with fixed x and y axis. I am following the SciChart_PointMarkersSelection example to use point markers.
Issue I am facing,

  1. the point disappears as the data changes. I want the points to be persistent and moving with the new y values.
  2. I want to add the fixed x values and changing y values of the selected points in a data grid
  3. The user should be able to change the x values in the data grid and the point should move accordingly.
  4. I want to get the data back to the observable collection in the View model.

The example is does not have realtime data changing every 2 min and the point marker x and y values are displayed on the UI as List.

Is this the right option to use PointMarkersSelection modifier? If not please suggest any alternative method to achieve the above goals.

I was thinking of putting the selected points in to a scatter chart and add it to the same IRenderableSeriesViewModel and update the corresponding y values as the new data comes in.
But my problem is, how should i get the nearest actual point in the data set and send it from UI to the view model to populated the scatter chat?

0 votes
1k views

Many years ago, SciChart tech support provided me with code for a RollerMarkerHelper class. I implemented this in VB.net, but I’ve attached a C# version which I just created using an automated translator. This code takes as arguments a RenderableSeries and a style template. I used this, along with a very simple style template such as the one shown below, so that I could display a gray circle over whatever point the cursor was over. (This is useful in my particular application.)

But I’m implementing a new application in C# using the MVVM approach (e.g., LineRenderableSeriesViewModel). How can I modify the RollerMarkerHelper class to handle this, or is there another approach I should use?

    <ControlTemplate x:Key="SpectrumRolloverMarkerTemplate">
        <Ellipse Width="7" Height="7" Fill="SlateGray" Stroke="SlateGray" StrokeThickness="1" />
    </ControlTemplate>
  • yefchak asked 3 months ago
  • last active 3 months ago
0 votes
1k views

Hi folks,

In the old days, text annotations were implemented using a CustomAnnotationsChartModifier which would bind to a collection of TextAnnotationViewModels. The TextAnnotationViewModel included tool tip text in addition to the main text and the coordinates.

In the current SciChart, eventualy we now bind a collection of IAnnotationViewModels to the SciChartSurface’s built-in Annotations property. But these viewmodels do not implement a member for tool tip text.

How can I replicate my old code, which dynamically created and displayed text annotations which implement a ToolTip as well?

  • yefchak asked 6 months ago
  • last active 3 months ago
0 votes
16k views

Hi everyone,

i’m just looking for a polar chart that can plot 3D-Data like Heatmap Chart. Anyone has an idea about it?

0 votes
8k views

I would like to create a polar heat map .

Is it possible to create one using the current types – I have looked a the examples and just don’t see an obvious choice.

I have attached an example of a polar heat map.

0 votes
0 answers
672 views

Hi,
In XAML for axes bind I need to write into s:SciChartSurface just

XAxes="{s:AxesBinding FrcLayerChartXAxes}"

If I write in C# code as I see I need to make in cycle like this (but is doesn’t worked)

FrcLayerChart.XAxes.Add(FrcLayerChartXAxes[i]);

here FrcLayerChartXAxes is ObservableCollection
Can I add all axes by 1 step?

1 vote
2k views

Hello,

We are trying to create a heatmap where no colors are interpolated, however there is no option to fully disable interpolation as in WPF library.

Below we provide a codepen example to illustrate that it always interpolates between colors:
https://codepen.io/acl-private/pen/YPPdvvM

For us the precision is really important and we cannot manipulate the gradient offsets in gradientStops array. If we do this, it will still interpolate between red and blue since we already have values between 0.49 and 0.5.
gradientStops: [
{ offset: 0, color: "red" },
{ offset: 0.50 - 0.01, color: "red" },
{ offset: 0.50, color: "blue" },
{ offset: 1.00, color: "blue" }
]

  • Zino As asked 11 months ago
  • last active 3 months ago
1 vote
1k views

Hi,
I’m experiencing an issue after upgrading to SciChart v4.0.923.
It seems that the font registration for NativeTextAnnotation is not rendering correctly, especially regarding numeric characters. The rendered text appears distorted or improperly shaped.

This behavior did not occur in SciChart v3, where the same annotations and fonts rendered correctly.

I’ve attached screenshots comparing the output in version 4 vs version 3 to illustrate the difference.

Could you please check whether this is a known issue in the new rendering pipeline, or if any additional configuration is required for custom font registration in SciChart 4?

Thank you!
If you need any additional information or a reproduction snippet, I can provide it.

0 votes
1k views

Hi folks,

I’m using MVVM and need to implement hit tests. I found this post from nine years ago, saying it’s not yet implemented:
https://www.scichart.com/questions/wpf/hit-testing-a-renderableseriesviewmodel

Surely you have a solution by now? What is it?

Thanks,
–George

  • yefchak asked 3 months ago
  • last active 3 months ago
0 votes
670 views

Hi,
I’m working on a feature for wpf application where there will be multiple tab controls and each tab control can be able to plot the graphs . So I have a usercontrol with scichartsurface which is bound to dataseries of type LineRenderableSeriesViewModel. User should be able to close all the tabs one by one. But when we are closing the last tab the application is getting crashed with no logs being caught at wpf level unhandled exception. But getting the below message while debugging, for –
Exception {“Attempted to read or write protected memory. This is often an indication that other memory is corrupt.”} System.AccessViolationException

The usage of the scichart is as follows:

this scichartsurface is being placed inside an usercontrol and the user control is used as template to document page for docking manager control

 

 

 

 

Package used for scichart:
SciChart3D-8.5.0.28148
SciChart.DirectX-8.5.0.28148

Any guidance on the correct disposal/teardown pattern for SciChart in a multi-tab scenario, or known workarounds for last-surface shutdown, would be greatly appreciated.

1 vote
8k views

Is there a way to control how/when the open/close tick mark is displayed on OHLC charts with respect to the zoom level? When a chart with a lot of data is way zoomed out you of course can’t see the open/close, but as you zoom in, the horizontal open/close ticks become visible. SciChart WPF v8 is a bit more aggressive removing the open/close than I would prefer. The attached images show just one minor difference in zoom level. The one where the open/close has disappeared entirely doesn’t look “right” to my eyes. I’m using a OhlcRenderableSeriesViewModel for MVVM. Any hints or suggestions appreciated!

0 votes
2k views

We need to make heatmaps of our data and don’t know the type of data variables until runtime. Because of this I am switching the axes like so in XAML:

 

The key is that I’m a custom LabelProvider class to convert any categorical values into the appropriate label for the axes. I would have liked to use a CategoryNumericAxis for both axes, but for some reason it seems you can’t so I’m using a NumericAxis.

All data values are coming in as 0, 1, 2,… for the categorical variables.

I am running into two issues with the axes. First is that the last category is cutoff prematurely and I’d like to align the labels with the center of the category not the left edge. These issues appear with the CategoryNumericAxis.

The second issue is that I’m having issues aligning both the values and controlling the number of what I guess are the tickmarks for the Y axis since it doesn’t know it is categorical data. Is there any (easy) way to handle the Y axis for categorical data?

Attached is an image of what the plots are looking like:

0 votes
2k views

I’d like to make a live circular heatmap chart like the following:
https://photos.google.com/photo/AF1QipOaJQMot-4PyH-MxKetV6fe5lOIXbOv1TDUujBa
The best way I can think to do this would involve polar coordinates, but from what I can see in the documentation that is only an option in WPF, not Android or iOS. Do you know of any workarounds that would make this possible? I’m not a current customer, but if there’s an easy solution to this, that would likely win me over.

0 votes
3k views

I’m developing apps in swiftui and compose. Basically, the code where I update the backing XyDataSeries is separate from where the actual render surface is. This mostly works fine in ios, but I’m noticing some flickering in android. At the end of the update the charts render fine, but I ‘m pretty sure I should be suspending the updates until my block of data series are all updated. The problem is getting the surface instance back to where the data series are being updated (which I can do, but it just makes things more complicated on my end because of the view hierarchies in swiftui and compose).

Is there a way to globally suspend updates across all rendered surfaces (without requiring explicit references to those surfaces)? If not, can I request this feature?

  • w p asked 2 years ago
  • last active 4 months ago
0 votes
2k views

Hello,

I am using SciChart within an AndroidView in Compose.
The Android View itself is limited in height (not full height) and lies within a Column which can be vertically scrolled. The problem is, that the vertical Scroll of the Column collides with the gestures of SciChart, as you can see in the screen recording attached.

I tried to disable the vertical scroll when the user interacts with SciChart, which works, but this is not what we want and not reasonable. We want to be able to interact with the graph and keep the other logic unharmed.

I also tried to intercept with an onTouchListener, but it seems as I can’t tell SciChart which gestures to recognize and which not.

I am working around this issue for a long time now and now I’m asking you for help.
Right now we are in trial mode, whether we purchase and licence SciChart depends on the result on this.
We have a similar problem on iOS, but I want to target Android first.

Do you have any suggestions or ideas on this topic?

Thank you!

Best regards,
Markus

0 votes
2k views

Hi,

I have implemented the SciChart framework in my Mac application. I am using SciChart version 4.6.0.5945.

  1. When I add a modifier to the chart, it draws a green vertical line that extends beyond the chart surface height. Below, I have attached a screenshot.

  2. How can I read the stroke color of a FastLineRenderableSeries from a custom rollover modifier class?

  3. I am using a real-time animated graph to plot my values. While it is animating, I can’t zoom and pan the chart view easily because of this rollover modifier.

  4. I continue running the animated graph even when I switch to other tabs or views. However, when I return, the rollover modifier does not display the label on mouse over.

0 votes
2k views

I isolated the source of the memory leak I was debugging on iOS to whether or not the labels are enabled in version 4.6.0.5945. The leak is only present in the latest version. Reverting back to 4.5.0.5903 with re-enabled the axis labels, I do not experience the memory leak. I am plotting real time data points about as quickly as they can be received over BLE on iOS to exercise this leak. Screenshots are attached of same code running against 4.6.0.5945 and 4.5.0.5903.

“`

private func setupChart() {
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }
SCIUpdateSuspender.usingWith(self.surface) {
// Clear everything first
self.surface.xAxes.clear()
self.surface.yAxes.clear()
self.surface.renderableSeries.clear()
self.lineDataSeries.removeAll()

// Apply theme based on dark mode setting
self.updateTheme()

// Setup axes
let xAxis = SCIDateAxis()
if let label = self.xAxisLabel {
xAxis.axisTitle = label
}
xAxis.autoRange = .always

// EXPERIMENT: Disable axis labels to test for memory leak
let xExperiment = true
xAxis.drawLabels = xExperiment
xAxis.drawMajorTicks = xExperiment
xAxis.drawMinorTicks = xExperiment

let yAxis = SCINumericAxis()
yAxis.autoRange = .always
yAxis.scientificNotation = .normalized
if let label = self.yAxisLabel {
yAxis.axisTitle = label
}

// EXPERIMENT: Disable axis labels to test for memory leak
let yExperiment = true
yAxis.drawLabels = yExperiment
yAxis.drawMajorTicks = yExperiment
yAxis.drawMinorTicks = yExperiment

self.surface.xAxes.add(items: xAxis)
self.surface.yAxes.add(items: yAxis)

// Create renderable series for each column (if we know how many)
if self.actualColumns > 0 {
for i in 0..<(self.actualColumns-1) { // -1 because first column is timestamps
let series = SCIXyDataSeries(xType: .date, yType: .double)
series.fifoCapacity = self.fifoCapacity // Use the class property

// Use provided config if available, otherwise generate default
let config: LineSeriesConfig
if let configs = self.providedLineConfigs, i < configs.count {
config = configs[i]
series.seriesName = config.name
} else {
config = LineSeriesConfig(
name: “Channel (i+1)”,
color: self.defaultColor(for: i),
thickness: 2.0
)
series.seriesName = config.name
}

let lineSeries = SCIFastLineRenderableSeries()
lineSeries.dataSeries = series
lineSeries.strokeStyle = SCISolidPenStyle(color: config.color, thickness: config.thickness)

self.lineDataSeries.append(series)
self.surface.renderableSeries.add(lineSeries)
}

// Initialize modifiers
self.updateModifiers(showLegend: self.showLegend, showInspect: self.showInspect)
}
}
}
}

“`

Instruments showed leaked memory coming from SciChart:

_malloc_type_calloc_outlined
class_createInstance
+[_CTNativeGlyphStorage newWithCount:capacity:]
TTypesetterAttrString::Initialize(__CFAttributedString const*, bool)
TTypesetterAttrString::TTypesetterAttrString(__CFAttributedString const*, __CFDictionary const*, bool)
CTFramesetterCreateWithAttributedString
DrawAttributedString /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Core/Utility/NativeCategories/CoreGraphicsExtensions.h:56
-[SCIDrawableText p_SCI_drawToCGContext:attributedString:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Drawing/Common/SCIDrawableText.m:140
-[SCIDrawableText tryDrawToCGContext:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Drawing/Common/SCIDrawableText.m:134
-[SCIAxisTickLabelsRendererComponent p_SCI_drawTickLabelsOnCGContext:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Axes/AxisRenderers/AxisTickLabelsRenderers/SCIAxisTickLabelsRendererComponent.mm:133
-[SCIAxisTickLabelsRendererComponent onDrawWithContext:andAssetManager:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Axes/AxisRenderers/AxisTickLabelsRenderers/SCIAxisTickLabelsRendererComponent.mm:103
-[SCIDefaultAxisRenderer onDrawWithContext:andAssetManager:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Axes/AxisRenderers/SCIDefaultAxisRenderer.m:0
-[SCIAxisBase onDrawAxisWithContext:andAssetManager:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Axes/SCIAxisBase.mm:552
-[SCIAxisBase onDrawWithContext:andAssetManager:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Axes/SCIAxisBase.mm:546
-[SCIRenderSurfaceRenderer p_SCI_drawAxes:assetManager:axes:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Rendering/SCIRenderSurfaceRenderer.m:467
-[SCIRenderSurfaceRenderer p_SCI_drawAxesWithContext:assetManager:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Rendering/SCIRenderSurfaceRenderer.m:0
-[SCIRenderSurfaceRenderer p_SCI_drawWithContext:assetManager:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Rendering/SCIRenderSurfaceRenderer.m:305
-[SCIRenderSurfaceRenderer p_SCI_renderLoop:assetManager:renderPassState:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Rendering/SCIRenderSurfaceRenderer.m:97
-[SCIRenderSurfaceRenderer onDrawWithContext:andAssetManager:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Charting/Visuals/Rendering/SCIRenderSurfaceRenderer.m:87
-[SCIRenderSurfaceDrawable2D drawFrameIn:withDrawableSize:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Drawing/Twister/SCIRenderSurfaceDrawable2D.mm:54
-[SCITwisterRendererBase drawFrameIn:withDrawableSize:] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Drawing/Twister/SCITwisterRendererBase.mm:92
-[SCIMetalRenderSurfaceBase draw] /Users/andrewburnett-thompson/Documents/buildAgent/work/f9370f90a7c5ff8f/dev_root/iOS/src/SciChartFramework/SciChart/Drawing/Metal/SCIMetalRenderSurfaceBase.m:131
-[CALayer display]

  • Jacob Trueb asked 11 months ago
  • last active 4 months ago
0 votes
1k views

Hey,
I’m working on a feature where users can edit DataPoint position directly on a chart by dragging them with the mouse, and I would like to ask for guidance, best practices, or existing examples. I see one example for SciChart WPF but couldn’t apply that to JS because many things differ between WPF and JS.

Goal
Allow users to change the point positions of a LineSeries by dragging individual points on the chart.

Given
An FastLineRenderableSeries (XyDataSeries) with EllipsePointMarker.

When
The user clicks and holds the left mouse button on a point (EllipsePointMarker)

Then
The selected point changes its appearance (e.g., bordered or highlighted) and it is possible to move the point to change the position of it.

On Mouse Release
The point position is updated
Line and point styling return to their default state

Showing 1 - 50 of 5k results