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

0 votes

We have lots of use cases where livedata is appended to exisiting series. The data has gone through algorithms, is not time-based and so is unsorted. Better said, it’s scientific data, for e.g. Bode-, Nyquist diagrams
Can we make the SeriesValueModifier style so it places the latest value also at the x-position ? Currently we have CustomAnnotations for this, which seems a clumsy work-around.

1 vote

I’m implementing a toggle between joined and separated axes for my series and I’ve encountered a problem with my SeriesValueModifiers. The modifier seems to be connected to “DefaultAxisId”, when I have my series linked to an axis with that ID the values show up as expected. However, when I separate my series to individual axes the modifiers no longer appears.

Is it possible to collect and show all my SeriesValueModifiers on one axis (keeping the others invisible)? Or perhaps show modifiers on all the axes and stack them on top of each other, keeping labels invisible.

This is the code I’ve got right now:

Adding an axis in my constructor, this one will be used when all the series are using the same axis.

ChartYAxes.Add(new NumericAxis()
    Visibility = Visibility.Visible,
    AutoRange = AutoRange.Always,

Then I add a new axis for each series.

ChartYAxes.Add(new NumericAxis
    Id = tagName,
    Visibility = Visibility.Collapsed,
    AutoRange = AutoRange.Always

var renderableSeries = new FastLineRenderableSeries
    YAxisId = IsIsolatedCharts ? tagName : "DefaultAxisId"

Toggling between these works great, but I need the value labels for this to be useful in any way.

EDIT: In case it’s relevant, here’s the code for toggling.

private void SplitAxes()
    var count = Series.Count;
    for (int i = 0; i < count; i++)
        var series = Series[i];
        var name = series.DataSeries.SeriesName;
        //The axes are also added to a dictionary for easy access.
        _axisDictionary[name].GrowBy = new DoubleRange(count - i - 1, i);
        series.RenderSeries.YAxisId = name;

private void JoinAxes()
    foreach (var series in Series)
        series.RenderSeries.YAxisId = "DefaultAxisId";
1 vote

Please look at screenshot. There is SeriesValueModifier with 27.68 price, but it is not fit into YAxis. Questinos:
1) How can I bind YAxis width to always fit SeriesValueModifier ?
2) How can I set font size and text formatting for value in SeriesValueModifier , not changing text on YAxis labels?

  • RTrade A asked 7 years ago
  • last active 7 years ago
Showing 3 results
This template supports the sidebar's widgets. Add one or use Full Width layout.