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

0 votes


I’ve the following problem.

We have an application where we have many spectrums (frequency or order spectrums). To get a better overview and to select one for a more detailed analysis, we would like to display them as a waterfall chart. A spectrum always has a high resolution of 32768 points. If I now display between 60 and 100 spectrums in a waterfall chart, it takes quite a long time to render this and it is almost impossible to operate the chart.

However, a high-resolution spectrum is not required for a good overview in the waterfall diagram. Therefore my idea is to resample every single spectrum to e.g. 8192 points and then display it in the waterfall diagram.

Is there a possibility to use the internal SciChart resampler (e.g. Min/Max) or do I have to develop an own algorithm for this?

Or does a similar function already exist in SciChart?


0 votes


I have 2 charts, a 2D Heatmap and a 3D Waterfall chart, and I want to be able to programmatically change their color palettes.

The 2D heatmap is set up like this, with the GradientStops bound to an ObservableCollection:

<s:HeatmapColorPalette x:Key="HeatmapColorPalette" Maximum="{Binding MaxValue,Mode=TwoWay}"  GradientStops="{Binding ColorPalette}"/>
        DataSeries="{Binding Data}"
        ColorMap="{StaticResource HeatmapColorPalette}">

This works as expected. When the binding changes the palette/heatmap changes.

The 3D waterfall is set up the similarly:

<s3D:GradientColorPalette x:Key="GradientColorPalette" IsStepped="False"  GradientStops="{Binding ColorPalette}" />
        DataSeries="{Binding Data3D}"
        YColorMapping="{StaticResource GradientColorPalette}"

This, when passed the same data, doesn’t render the chart.
This chart otherwise works fine if I define the GradientStops statically in the XAML.

This is the GradientStops definition (in f#):

let BlueRed = 
        new ObservableCollection<GradientStop>([
            new GradientStop(Color.FromRgb(0x00uy,0x00uy,0xFFuy),0.0)
            new GradientStop(Color.FromRgb(0xFFuy,0x00uy,0x00uy),1.0)

I am not sure what I am missing.

(edit: apologies for formatting issues in the question)

0 votes
0 answers


I use GradientColorPalette to set the color mapping of Y axis in Waterfall 3D Chart.
I want to fix the color to certain fixed min/max level, e.g. red when y value >= 100, green when y value < -100.
Currently, it seems that color is auto scale to current min/max y value in waterfall.
I try setting VisibleRange of YAxis, but it has no effect on color mapping.

In case of SurfaceMeshRenderableSeries3D, there are Minimum and Maximum properties.
In case of FastUniformHeatmapRenderableSeries, there are Minimum and Maximum properties in HeatmapColorPalette.
Are there any similar min/max properties to use for Waterfall 3D Chart?

Looking up the documentation, I still cannot find the suitable properties to use.
Is there any way to do the min/max color mapping for waterfall chart?

Best regards

Showing 3 results
This template supports the sidebar's widgets. Add one or use Full Width layout.