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

0 votes
12k views

I have a C# program that produces a custom data series in the form List, where the Dataline members are Date, Open, High, Low, Close, Volume. Is there some way I can plot my data series in SciChart, without converting it element-by-element into OhlcDataSeries?

  • Steven M asked 7 years ago
  • last active 7 years ago
1 vote
18k views

Hello,

I have the need to be able to select a single column or a set of columns from either a FastColumnRenderableSeries or a StackedColumnRenderableSeries.

Is there an out-of-the-box way to do this?

If negative, could you provide me some guidance as to what I could do?

Thank you.

Kind regards,
Sebastian

0 votes
17k views

Hi,

I would like to know if the SCICHART support the 3D polar plot, as shown below.

3D polar example

Many thanks
Dan

0 votes
12k views

Hello,

I have both the AutoTicks and MajorDelta property on a NumericAxis bound to my viewmodel. If I start with AutoTick = false and change the MajorDelta, then the major delta on the axis changes as expected.

If I toggle AutoTick to true and then back to false the MajorDelta binding no longer works (it stays at the value set by auto).

I’m currently using v3.42.0.677.

Thanks.

0 votes
6k views

I have a chart with four graphs, (four curves). I would like to get the Y-coordinate values for each of these curves, at the point where the mouse is positioned or clicked.

This code :

Point mousePoint;    
double yValue = YAxis.GetDataValue(mousePoint.Y);

gets only one of the y values, only one double value. I would like all the four y values, four double values. How can I get all these four y values? Thanks.

  • Amarnath S asked 5 years ago
  • last active 5 years ago
0 votes
13k views

Hi All,
i have a problem when i added the Abt.Controls.Scichart.Core.Wpf.Example in my project like in the picture ! Thank you !
Best Regards Sahar

  • sahar Les asked 11 years ago
  • last active 11 years ago
0 votes
3k views

SciChanrts

body { margin: 0; }

scichart-root { width: 100%; height: 100vh; }

chart0
chart0

// Create a SciChartSurface in the div ‘scichart-root’

async function builderExample(divElementId) {

var data1 = [[1698350200000, 659.4081], [1698350200000, 709.4191], [1698347047000, 542.9722], [1698342726000, 652.2053], [1698338406000, 566.1798], [1698334075000, 616.6355], [1698329754000, 686.94464], [1698325434000, 581.1947], [1698321108000, 616.5695], [1698316788000, 687.024], [1698312467000, 514.56464], [1698308146000, 657.59796]];

var xArray = [];
data1.forEach(function (value,index) {
// xArray[index] = value[0]
xArray.push(new Date(value[0]));
})
var yArray = [];
data1.forEach(function (value,index) {
yArray.push(value[1]);
})

// Demonstrates how to create a line chart with SciChart.js using the Builder API
const {
chartBuilder,
EThemeProviderType,
NumberRange,
EAxisAlignment,
EAxisType,
ESeriesType,
ZoomPanModifier,
MouseWheelZoomModifier,
TextAnnotation,
ECoordinateMode ,
EHorizontalAnchorPoint ,
EVerticalAnchorPoint ,
FastLineRenderableSeries,
xyDataSeries
} = SciChart;

// or, for npm, import { chartBuilder, … } from “scichart”

// #region ExampleB
// If you want to show an XAxis with dates between 1st March 2023 and 10th March 2023
const minDate = new Date(xArray[xArray.length – 1]);
const maxDate = new Date(xArray[0]);
console.log(xArray[0] + “minDate “+ minDate);

console.log(xArray[0] + “maxDate “+ maxDate);
// Create data for the chart with X-data as dates using unix Timestamp / 1000

const { wasmContext, sciChartSurface } = await chartBuilder.build2DChart(divElementId, {
surface: { theme: { type: EThemeProviderType.Dark } },
xAxes: {
type: EAxisType.DateTimeNumericAxis,
options: {
axisTitle: “X Axis / DateTime”,
// We need to specify some visibleRange to see these two dates
// SciChart.js expects linux timestamp / 1000

visibleRange: new NumberRange(minDate.getTime()/1000, maxDate.getTime()/1000 )
}
},
yAxes: {
type: EAxisType.NumericAxis,
options: {
axisTitle: “Y Axis, Left, default formatting”,
axisAlignment: EAxisAlignment.Left,

visibleRange: new NumberRange(500, 800),
}
},
series: [
{
type: ESeriesType.MountainSeries,
options: {
strokeThickness: 3,
stroke: “#50C7E0”
},
xyData: { xArray, yArray }
}
]
});
// #endregion
sciChartSurface.chartModifiers.add(new ZoomPanModifier(), new MouseWheelZoomModifier());

// Add annotations to tell the user what to do
sciChartSurface.annotations.add(new TextAnnotation({
text: “DateTimeNumericAxis Demo”,
x1: 0.1, y1: 0.1,
yCoordShift: 0,
xCoordinateMode: ECoordinateMode.Relative, yCoordinateMode: ECoordinateMode.Relative,
horizontalAnchorPoint: EHorizontalAnchorPoint.Center, verticalAnchorPoint: EVerticalAnchorPoint.Center,
opacity: 0.33,
fontSize: 36,
fontWeight: “Bold”
}));
sciChartSurface.annotations.add(new TextAnnotation({
text: “Try mouse-wheel, left/right mouse drag and notice the dynamic X-Axis Labels”,
x1: 0.5, y1: 0.5,
yCoordShift: 50,
xCoordinateMode: ECoordinateMode.Relative, yCoordinateMode: ECoordinateMode.Relative,
horizontalAnchorPoint: EHorizontalAnchorPoint.Center, verticalAnchorPoint: EVerticalAnchorPoint.Center,
opacity: 0.45,
fontSize: 17,

}));
const lineSeries = new FastLineRenderableSeries(wasmContext);
lineSeries.strokeThickness = 3;
lineSeries.stroke = “rgba(255,0,0,1)”;
lineSeries.dataSeries = xyDataSeries;
sciChartSurface.renderableSeries.add(lineSeries);
};

// Uncomment this to use the builder example
builderExample(“scichart-root”);

1 vote
8k views

Hi, I have a problem with the Y-axis mouse scroll sensitivity regarding values, if you take a look here, you can see that it will take a lot of separate scrolls to reach the desired Y-axis value
due to a low level of sensitivity
how can I solve this problem

P

my code

“`

        <s:SciChartSurface x:Name="scs" 
                           RenderableSeries="{s:SeriesBinding Series}" 
                           ViewportManager="{Binding ViewportManager}"
                           BorderThickness="2,2,2,0"
                           s:VisualXcceleratorEngine.EnableImpossibleMode="True"
                           LeftAxesPanelTemplate="{StaticResource YAxesPanel}"
                           Grid.Row="0"   
                           MouseDoubleClick="OnChartMouseDown">


            <s:SciChartSurface.XAxes>
                <!-- Hidden Axis that tracks the data -->
                <s:NumericAxis AutoRange="Always"
                               DrawMinorGridLines="False"
                               DrawMinorTicks="False"
                               DrawMajorGridLines="False"
                               DrawMajorTicks="False"
                               Visibility="Collapsed"
                                />
                <!--Hidden Axis that track the annotations' locations (All the added annotations have the same XAxis Id-->
                <s:NumericAxis Name="SharedXAxisCommon"  
                                AutoRange="Never"
                                VisibleRangeLimit="0,10"
                                Height="1"
                                Visibility="Hidden"  
                                Id="CommonID_X"/>
            </s:SciChartSurface.XAxes>

            <s:SciChartSurface.YAxes >
                <s:NumericAxis AutoRange="Never"
                               AutoTicks="True"
                               DrawMinorGridLines="False"
                               DrawMinorTicks="False"
                               DrawMajorGridLines="False"
                               DrawMajorTicks="True"
                               VisibleRange="0,8128000"
                               Visibility="Collapsed"/>
            </s:SciChartSurface.YAxes>
            <s:SciChartSurface.ChartModifier>
                <s1:ModifierGroup>
                    <s1:YAxisDragModifier/>
                    <s:SeriesSelectionModifier >
                        <s:SeriesSelectionModifier.SelectedSeriesStyle>
                            <Style TargetType="s:BaseRenderableSeries">
                            </Style>
                        </s:SeriesSelectionModifier.SelectedSeriesStyle>
                    </s:SeriesSelectionModifier>
                </s1:ModifierGroup>
            </s:SciChartSurface.ChartModifier>

        </s:SciChartSurface>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="0.3*"/>
                <RowDefinition Height="2*"/>
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="1" x:Name="InportValueTextBlock" Text="{Binding InportValue}" Margin="20,0,0,0" FontSize="14"/>
        </Grid>
    </Grid>

“`

0 votes
13k views

Hello there!

How can i remove or change chart indentation?

0 votes
8k views

I need to do some calculation for data in visible range after zoom. Is there any notification when gesture ends in SCIPinchZoomModifier? If not, then that means I have to build a custom zoom gesture modifier? If so could you show me how pinch zoom is done in SCIPinchZoomModifier so that I don’t need to build everything from scratch? Thanks

  • Haoran Xie asked 7 years ago
  • last active 6 years ago
0 votes
21k views

I can’t seem to find it in the API, but I figured I’d ask .Is any built in support for live editing the Chart Title or Axis Titles right on the chart surface like you can with a TextAnnotation?

0 votes
14k views

Hello,
I want to zoom at graph but without generating new 5×5 cubes in background. Is there a way how to do it?

0 votes
0 answers
7k views

Hello.
I am trying to use IExtremeRenderContext2D.DrawColoredSprites method to draw my custom series, this is a simplified example:

public class MyCustomSeries2 : CustomRenderableSeries
{
    private readonly WriteableBitmap _bmp;

    public MyCustomSeries2()
    {
        _bmp = new WriteableBitmap(5, 5, 96, 96, PixelFormats.Bgra32, null);

        _bmp.SetPixel(0, 0, Colors.White);
        _bmp.SetPixel(1, 1, Colors.White);
        _bmp.SetPixel(2, 2, Colors.White);
        _bmp.SetPixel(3, 3, Colors.White);
        _bmp.SetPixel(4, 4, Colors.White);

        _bmp.SetPixel(4, 0, Colors.White);
        _bmp.SetPixel(3, 1, Colors.White);
        _bmp.SetPixel(2, 2, Colors.White);
        _bmp.SetPixel(1, 3, Colors.White);
        _bmp.SetPixel(0, 4, Colors.White);
    }

    protected override bool GetIsValidForDrawing()
    {
        return true;
    }

    protected override void Draw(IRenderContext2D renderContext, IRenderPassData renderPassData)
    {
        var extremeRenderContext = renderContext.AsExtremeRenderContext();

        if (extremeRenderContext != null)
        {
            var sprite = renderContext.CreateSprite(_bmp);
            extremeRenderContext.DrawColoredSprites(sprite, new[] {new ColoredVertex {ColorArgb = Colors.White.ToInt(), X = 100, Y = 100}}, 0, 1);
        }
    }
}

So I would expect to see a pixel-perfect cross with sharp edges etc. But it renders as a smoothed mess instead.
How can I make it draw my sprites pixel-to-pixel?

Thanks

0 votes
10k views

I am having an issue with my Composite Annotation implementation.
I am using the example provided in the MeasureXyAnnotation.xaml that I found here.
My exception that is thrown (see exception attachment provided) complains about a missing Axis value.

In the public override void Update(ICoordinateCalculator xCoordCalc, ICoordinateCalculator yCoordCalc)
the yCoordCalc comes in with a null value. The xCoordCalc is populated and looks valid.

See attachment of my plotting area and well as the chart area. The composite annotation shows up alright, but as soon as I try to drag it the exception is immediately thrown.

I have no idea at this point why. I have tried to implement the annotation according to your example but obviously I am missing something.
Support getting this to work would be immensely appreciated.

Thank you
Anders

1 vote
0 answers
20k views

I want to know whether the FastRenderableSeries is out of VisibleRange or not. I can’t check with getIsVisible() as it could be invisible by the legend.

0 votes
17k views

hi, I wanted to display the cursor information (x, y value)on the text annotation like the following. I can only find the example of displaying as tooltip, but is it possible to show with the text annotation? Thank you!

  • may lym asked 8 years ago
  • last active 8 years ago
0 votes
15k views

Hi

I was trying to bind DoubleRange type property to the VisibleRange property of LogarimethicNumericAxis.
Since DoubleRange is not a primitive type, OnPropertyChanged command didn’t work in c#.
Is there any way to reslove this problem?
My code is as below.

in View

<sci:SciChartSurface.XAxis>
    <sci:LogarithmicNumericAxis AutoRange="Never"    
        DrawMajorGridLines="False" 
        DrawMinorGridLines="False" 
        DrawMajorBands="False"
        Visibility="Visible"
        VisibleRange="{Binding Path=AxisVisibleRange,Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
    </sci:LogarithmicNumericAxis>
</sci:SciChartSurface.XAxis>

in View model

public DoubleRange AxisVisibleRange
{
    get
    {

        DoubleRange dr = new DoubleRange(0.1,100);
        return dr;

    }
}        
1 vote
14k views

Hello,

I use SpherePointMarker3D for ScatterRenderableSeries3D series:

Color pointColor = Color.FromArgb(128, R, G, B);
pointDataSeries.Append(x, y, z, new PointMetadata3D(pointColor));

I expected to have seen semitransparent sphere in accordance with the specified color. But the sphere drawn opaque. The PointMetadata3D is not possible to specify the point opacity.

How to make some point semitransparent?

0 votes
13k views

Hi,
I’ve been trying to use CustomPointMarker to build a custom candle, but I need something like

CurrentRenderPassData.YCoordinateCalculator.GetCoordinate(yValue) to know the coordinates of a certain y value in the screen.

I look up CustomPointMarker documentation, but I haven’t found anything.

could you please help me?

Thank you

  • lorenzo522 asked 10 years ago
  • last active 1 year ago
0 votes
0 answers
14k views

Hi, guys

Is there possibility to show CursorModifier by simply changing switch state?

According to custom tooltip behaviour it is possible for SCITooltipModifier. And it’s work at v 2.0.0.xxxx

So can you provide a code with redefinitions of private Api methods for this situation?

UDP: What is the best practice to customize tooltip’s data view?

Best regards,
Sushynski Andrei

0 votes
12k views

I do not seem to be able to set the property YAxis.Visibility of BaseRenderableSeries as part of a Trigger.

<Style TargetType="s:BaseRenderableSeries">
        <Style.Triggers>
            <Trigger Property="IsVisible" Value="True">
                <Setter Property="YAxis.Visibility" Value="Visible"/>
            </Trigger>

            <Trigger Property="IsVisible" Value="False">
                <Setter Property="YAxis.Visibility" Value="Collapsed"/>
            </Trigger>
        </Style.Triggers>
    </Style>

I want to make the associated yAxis Visiblity be a function of whether the matching Renderable Series is visible or not. I checked and BaseRenderableSeries has a YAxis property that can be set. Why is “YAxis.Visibility” in the setter property throwing an error in xaml?

Note: I have multiple yAxes in one surface and each renderable series has its own yAxis

Thanks

  • bbmat asked 10 years ago
  • last active 10 years ago
1 vote
26k views

Hello,

I have ClipModeX=”ClipAtExtents” on my ZoomPanModifier. I need the same behavior on the y-axis, but there is no “ClipModeY”.

How do I prevent y-axis data from panning off the chart?

Thanks,
Neville

0 votes
21k views

Hi,
Is there solution to always display series name below the line on the chart, not in legen, but I need to hide legend and I do not know what is series name. Thank You

1 vote
10k views

Hi, Support team.

I’m using MVVM pattern and trying to implement multi-chart which can insert Box Annotations at the same time into each chart .
So I’m testing in SciChart Example [“DigitalAnalyzerPerformanceDemo”] to know how to implement this.

But what i only got is just looping through and create annotation for each ChannelViewModels.

In the Demo, the VisibleRange ‘XRange’ is shared to all the ChannelViewModels by binding TwoWay-mode in ParentViewModel without looping for each ChildViewModels.
Like this, I wonder is there ways to apply BoxAnnotation all the ChannelViewModel at the same time by binding in ParentViewModel.

    <!-- BottomAxis -->
        <s:SciChartSurface Grid.Column="1">
            <s:SciChartSurface.XAxis>
                <s:NumericAxis Height="30"
                               AxisAlignment="Bottom"
                               VisibleRange="{Binding XRange, Mode=TwoWay}"                 
                               LabelProvider="{StaticResource TimeLabelProvider}"
                               MajorTickLineStyle="{StaticResource TimeAxisMajorTickLineStyle}"
                               MinorTickLineStyle="{StaticResource TimeAxisMinorTickLineStyle}"/>
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis Visibility="Collapsed"/>
            </s:SciChartSurface.YAxis>
        </s:SciChartSurface>
    </Grid>

    <!--  Create an X Axis with GrowBy  -->
     <s:SciChartSurface.XAxis>
           <s:NumericAxis Style="{StaticResource HiddenAxisStyle}"
                    VisibleRangeLimitMode="Min"
                    VisibleRangeLimit="0,0"
                    VisibleRange="{Binding DataContext.XRange, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=ItemsControl, AncestorLevel=2}}"/>
     </s:SciChartSurface.XAxis>

I tried to bind annotation in ParentViewModel like XRange Binding method, But it doesn’t work.


This is View.xaml.

<Grid Grid.IsSharedSizeScope="True" IsEnabled="{Binding IsLoading, Converter={StaticResource InvertBooleanConverter}}">


    <!-- BottomAxis -->
        <s:SciChartSurface Grid.Column="1">
            <s:SciChartSurface.XAxis>
                <s:NumericAxis Height="30"
                               AxisAlignment="Bottom"
                               VisibleRange="{Binding XRange, Mode=TwoWay}"                 
                               LabelProvider="{StaticResource TimeLabelProvider}"
                               MajorTickLineStyle="{StaticResource TimeAxisMajorTickLineStyle}"
                               MinorTickLineStyle="{StaticResource TimeAxisMinorTickLineStyle}"/>
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis Visibility="Collapsed"/>
            </s:SciChartSurface.YAxis>
        </s:SciChartSurface>
    </Grid>

    <!-- Channels -->
        <ScrollViewer Background="#1C1C1E"
                      VerticalScrollBarVisibility="Auto"
                      HorizontalScrollBarVisibility="Disabled">

            <b:Interaction.Behaviors>
                <common:DigitalAnalyzerScrollBehavior ChannelHeightDelta="10" ChangeChannelHeightCommand="{Binding ChangeChannelHeightCommand}"/>
            </b:Interaction.Behaviors>

            <ItemsControl x:Name="chartItemsControl" ItemsSource="{Binding ChannelViewModels}">

                <b:Interaction.Behaviors>
                    <common:FocusedChannelScrollBehavior ScrollToFocusedChannel="False"/>
                </b:Interaction.Behaviors>

                <ItemsControl.ItemTemplate>
                    <DataTemplate DataType="{x:Type local:ChannelViewModel}">
                        <Grid Background="#2D2C32" Height="{Binding ChannelHeight, Mode=OneWay}" Focusable="False" UseLayoutRounding="False" >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition SharedSizeGroup="ChannelNames" />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>

                            <Border BorderThickness="0,0,0,1" BorderBrush="#1C1C1E">
                                <DockPanel>
                                    <Border DockPanel.Dock="Left"     
                                            Background="{Binding ChannelColor, Mode=OneWay}" 
                                            Width="5"/>

                                    <TextBlock DockPanel.Dock="Left"
                                               Margin="10,5"
                                               VerticalAlignment="Center"
                                               Foreground="White"
                                               Text="{Binding ChannelName}"/>
                                </DockPanel>
                            </Border>

                            <s:SciChartSurface x:Name="channelSurface" Grid.Column="1"
                                               RenderableSeries="{Binding RenderableSeries}"
                                               Annotations="{s:AnnotationsBinding  DataContext.Annotations, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=ItemsControl, AncestorLevel=2} }">

                                <!--  Create an X Axis with GrowBy  -->
                                <s:SciChartSurface.XAxis>
                                    <s:NumericAxis Style="{StaticResource HiddenAxisStyle}"
                                                   VisibleRangeLimitMode="Min"
                                                   VisibleRangeLimit="0,0"
                                                   VisibleRange="{Binding DataContext.XRange, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=ItemsControl, AncestorLevel=2}}"/>
                                </s:SciChartSurface.XAxis>

                                <!--  Create a Y Axis with GrowBy. Optional bands give a cool look and feel for minimal performance impact  -->
                                <s:SciChartSurface.YAxis>
                                    <s:NumericAxis Style="{StaticResource HiddenAxisStyle}"
                                                   VisibleRange="{Binding YRange, Mode=OneWay}"/>
                                </s:SciChartSurface.YAxis>

                                <s:SciChartSurface.ChartModifier>
                                    <s:ModifierGroup s:MouseManager.MouseEventGroup="ChannelModifierGroup">
                                        <s:RubberBandXyZoomModifier IsAnimated="False" IsXAxisOnly="True" ZoomExtentsY="False" ReceiveHandledEvents="True" IsEnabled="{Binding IsChecked, Mode=OneWay, ElementName=IsZoomEnabled}"/>
                                        <s:ZoomPanModifier ZoomExtentsY="False" XyDirection="XDirection" IsEnabled="{Binding IsChecked, Mode=OneWay, ElementName=IsPanEnabled}"/>
                                        <s:ZoomExtentsModifier XyDirection="XDirection" IsAnimated="False" />
                                        <s:MouseWheelZoomModifier XyDirection="XDirection" />
                                    </s:ModifierGroup>
                                </s:SciChartSurface.ChartModifier>
                            </s:SciChartSurface>

                            <Border Grid.Column="1"
                                    BorderThickness="0,0,0,1"
                                    BorderBrush="#2D2C32"
                                    VerticalAlignment="Bottom"/>
                        </Grid>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </ScrollViewer>
    </Border>


</Grid>

This is ViewModel.cs

public class DigitalAnalyzerExampleViewModel : BaseViewModel
{
    private bool _isLoading;
    private DoubleRange _xRange;

    public DigitalAnalyzerExampleViewModel()
    {
        ChannelViewModels = new ObservableCollection<ChannelViewModel>();
        Annotations = new ObservableCollection<IAnnotationViewModel>();
        Annotations.Add(new BoxAnnotationViewModel() { X1 = 0, X2 = 1000, Y1 = 0, Y2 = 1 }); //I want to implement sharing annotation like this.

        SelectedChannelType = "Digital";
        SelectedChannelCount = 32;
        SelectedPointCount = 1000000;
        SelectedResamplingPrecision =ResamplingPrecision.Default;
        SelectedStrokeThickness = 1;

        ChangeChannelHeightCommand = new ActionCommand<object>((d) =>
        {
            var delta = (double)d;
            foreach (var channelViewModel in ChannelViewModels)
            {
                channelViewModel.SetChannelHeightDelta(delta);
            }
        });

        AddChannelCommand = new ActionCommand(async () =>
        {
            IsLoading = true;

            var isDigital = SelectedChannelType == "Digital";
            await AddChannels(isDigital ? 1 : 0, isDigital ? 0 : 1);

            IsLoading = false;
        });

        LoadChannelsCommand = new ActionCommand(async () =>
        {
            IsLoading = true;

            // Clear ViewModels
            foreach (var channelVm in ChannelViewModels)
            {
                channelVm.Clear();
            }
            ChannelViewModels.Clear();
            XRange = null;

            // Create a bunch of Digital channels
            await AddChannels(SelectedChannelCount, 0);

            XRange = new DoubleRange(0, SelectedPointCount);
            IsLoading = false;
        });

        LoadChannelsCommand.Execute(null);
    }


    public ObservableCollection<ChannelViewModel> ChannelViewModels { get; private set; }
    public ObservableCollection<IAnnotationViewModel> Annotations { get; private set; }

    public string SelectedChannelType { get; set; }


    public ResamplingPrecision SelectedResamplingPrecision { get; set; }

    public int SelectedChannelCount { get; set; }

    public ActionCommand<object> ChangeChannelHeightCommand { get; }

    public ActionCommand AddChannelCommand { get; }

    public ActionCommand LoadChannelsCommand { get; }

    public long TotalPoints => ChannelViewModels.Sum(c => (long)c.DataCount);

    public bool IsLoading
    {
        get => _isLoading;
        set
        {
            _isLoading = value;
            OnPropertyChanged(nameof(IsLoading));
        }
    }

    public bool IsEmpty => ChannelViewModels.Count <= 0;

    public DoubleRange XRange
    {
        get => _xRange;
        set
        {
            _xRange = value;
            OnPropertyChanged(nameof(XRange));
        }
    }
}

+Attached image below is what i want to implement.
++I also attached tried code in .zip .

0 votes
14k views

I’m using a DateTimeAxis and by default major tick lines (and labels) are shown every 1/2 second – this is too busy/crowded for me. How do I change this to show a label every second? I set AutoTicks to false, but am not sure what to do about MajorDelta/MinorDelta when my X value is a DateTime object.

.
.
<s:SciChartSurface.RenderableSeries>
   <s:FastLineRenderableSeries x:Name="PositionSeries" StrokeThickness="2"/>
</s:SciChartSurface.RenderableSeries>

<s:SciChartSurface.XAxis>
   <s:DateTimeAxis x:Name="PositionXAxis" TextFormatting="mm:ss"/>
</s:SciChartSurface.XAxis>
.
.
XyDataSeries<DateTime, double> _positionSeries;
PositionSeries.DataSeries = _positionSeries;
.
.
  • Dan Pilat asked 9 years ago
  • last active 9 years ago
0 votes
11k views

I’d like to use the SciChartInteractionToolbar and the SciChartScrollbar in a scichart based project however (as always) there are some small but important changes that I need to make. I’ve looked everywhere but I can’t find where the toolbar is actually built in order to make the changes. I’m sure I could build the toolbar from scratch but this seems a waste when its largely already complete. Can you advise where I would find the code for the toolbar(s)?
Many thanks for your help!
Regards
Ian

1 vote
18k views

Hi All,

I have a situation where the chart needs to be switched between a log scale and a linear scale. To solve this I created 2 axis (one of each) and collapse one of them while the other is visible. The user can switch between them from a context menu.

I declare them in XAML as:

            <s:SciChartSurface.YAxes>
            <s:NumericAxis x:Name="LinearAxis" Id="LinearAxisID" AutoRange="Always" AxisAlignment="Left" AxisTitle="Linear" Style="{StaticResource LinearScaleStyle}" Visibility="Visible" GrowBy="0.0, 0.1"/>
            <s:LogarithmicNumericAxis x:Name="LogAxis"  Id="LogAxisID" AxisAlignment="Left" AxisTitle="Log" Style="{StaticResource LogScaleStyle}" GrowBy="0.0, 0.1" />
        </s:SciChartSurface.YAxes> 

THE ISSUE:
I’ve noticed that the Major and Minor gridlines are drawn based on the order the Axis are declared in <s:SciChartSurface.YAxes> which isn’t a problem. The problem comes when I collapse one axis and make the other visible (obviously re-assigning the series to the visible axis by ID) – The axis and data change as you might expect but the major and minor gridlines are not redrawn.

In summary, if you start with log gridlines, you always get log gridlines – even on a linear axis.

Is there a way to force the redrawing of the gridlines?

0 votes
13k views

Applying the following style to a FastLineRenderableSeries works fine:

<Style TargetType="s:FastLineRenderableSeries">
        <Setter Property="SeriesColor" Value="LightGreen" />
        <Setter Property="PointMarkerTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <s:EllipsePointMarker Fill="LightGreen" Stroke="LightGreen" StrokeThickness="3" Width="7" Height="7"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

But the following does not work at all:

<Style TargetType="s:BaseRenderableSeries">
        <Setter Property="SeriesColor" Value="white"/>
        <Setter Property="PointMarkerTemplate">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type s:BasePointMarker}">
                    <s:EllipsePointMarker Fill="White" Stroke="White" StrokeThickness="3" Height="5" Width="5"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

a) Could this be a bug? I want this style to apply to all FastLineRenderableSeries and XyScatterRenderableSeries.
b) I noticed the style is only applied if SeriesColor and PointMarkers are not assigned at the time of RenderableSeries instantiation.

  • bbmat asked 11 years ago
  • last active 11 years ago
0 votes
14k views

Hi,

I’ve got an issue with ChartModifiers in following scenario. I’ve got bunches of signals, where every signal carry data from different sensor. Bunches are recorded at individual sessions. I need to look at them collectively, so I choose some signals from one bunch and some signals from another bunch, where one signal = one SciChartSurface control and every SciChartSurface control is aligned in sequencer-like way (like yours Multi-Pane Stock Chart example), because I want to see signals one under another. I need to have some group of ChartModifiers acting on all choosen signals, because time scale should be preserved (as in yours example) – it works in my solution. But I also need to apply a modifier to pan, that should works only on signals that are part of certain bunch, because starting point in time of certain bunch signals don’t have to be preserved.

Assuming, zoom should works on every signal from every bunch, but panning should works only on signals from one bunch. I already gain zoom functionality by the means of ModifierGroup and MouseManager.SetMouseEventGroup(), but i don’t know how to add the panning. Could you give me any suggestions, how can I handle this?

I’m sending some screens below.

1 vote
536 views

Hello SciChart team,

I have a question and a feature request regarding BoxAnnotation and DrawingTools in the JavaScript version.

Currently, it is not possible to apply a corner radius to BoxAnnotation in SciChart JS, while this feature exists in other platforms such as WPF. Would it be possible to support this in the JavaScript version as well?

I previously used CustomAnnotation to achieve this kind of customization. However, due to performance constraints, I had to stop using it. Since CustomAnnotation relies on SVG elements added to the DOM, it caused significant CPU usage in my case. My application requires rendering multiple annotations with real-time updates, and this led to noticeable performance degradation, including UI lag and occasional freezes.

Because of this, I migrated to BoxAnnotation for better performance, but I do miss the ability to customize things like rounded corners.

Regarding DrawingTools, since they are not available in the JavaScript version, having this feature would be extremely helpful. My application is focused on trading, where drawing tools are heavily used. I have personally implemented some custom drawing features, but having a standardized, built-in solution would greatly simplify development and improve consistency.

Thanks in advance for your support!

1 vote
9k views

When running with scaling other than 100%, the results are very blurry.

I’ve come across this article https://support.scichart.com/index.php?/Knowledgebase/Article/View/17263/40/ which explains the reasoning. In that you’re always rendering at 96DPI no matter what the current scaling is set to.

It says to use the XamlRenderSurface, but this isn’t practical in most scenarios. For example, we want to render scatter plots. Enabling the XamlRenderSurface in your Scatter Chart example results in very poor performance even with only a small number of points being rendered.

So is the situation still the same from that 2019 article? You still don’t provide the option to render using the accelerated surface at anything other than 96 DPI?

I appreciate that the performance would be reduced, but it would surely be much better than the XamlRenderSurface?

  • Ben Green asked 3 years ago
  • last active 3 years ago
0 votes
15k views

Hi guys,

Can you help me with the following problems that I have implementing this?

  1. there is any way to export the chart data to CSV and XSL?
  2. How can I make this the following two functionalities work:
    a)
    b)
    public override void OnModifierMouseUp(ModifierMouseArgs e)
    {
    // Open menu if right mouse btn was clicked and Alt btn was pressed
    // IsOpen should be OneWay-bound to SciChartSurface.ContextMenu.IsOpen
    IsOpen = (e.MouseButtons == MouseButtons.Right) && (e.Modifier == MouseModifier.Alt);
    }

As you can see both use the the mouse right button so, when a) is executed, b) does not work…
I was thinking that maybe if I could execute a) when double right click it may fix it… but I am not sure how to do it. Any ideas how to fix this?

Thanks very much…

0 votes
12k views

Hi all,
How can I remove the space (red cross) inside the chart ?
Thank you!

  • sahar Les asked 11 years ago
  • last active 1 year ago
0 votes
8k 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

  • Guest asked 5 years ago
  • last active 5 years ago
0 votes
14k views

Hi,

I’ve got several line chart series in my ChartSurface and it’s possible to collapse and show them dynamically. If I collapse all series and only one series visible I would like to see that one in the OverView chart. But I cannot find a way to get it done. DataSeriesIndex always get the first series in the parentSurface regardless of it’s visibility. Is there any way to show the first visible Series in the Overview chart?

<chart:SciChartOverview ParentSurface=".." DataSeriesIndex=”1″ SelectedRange=”{Binding ElementName=.., Path=XAxis.VisibleRange, Mode=TwoWay}”>

Best Regards,
Charith

0 votes
0 answers
9k views

Hi all,
I want to use CategoryDateTimeAxis in my chart but also i want to format Date.
I found in documentation CategoryDateTimeAxisLabelProvider class but examples are not working and
this part does not exist anymore.
// Get the axis controller which has the XAxis data on it as dates
let controller = dtAxis?.currentController as? SCIArrayController

My question:
How to get seconds or dates based on min and max values from visibleRange to format it properly?

1 vote
9k views

How is it possible to sync SciChart with a ListView? The vertical chart grid should be the same width as the list view columns. A ScrollBar or a Chart-Overview should be used for synchronous scrolling of the X-axis and the ListView.

  • Tobias asked 4 years ago
  • last active 4 years ago
0 votes
4k views

Hello,

I am having a problem where I want to display the Rollover Modifier only when I click on the selected graph.
For example:
https://demo.scichart.com/javascript-chart-rollovermodifier-tooltips
If I select the Second Lines Series, I want to see the rollover only for that particular graph and not the first one and the third one.

I have tried using charts id’s as a reference to show only one tooltip but it just enables it for all the graphs.

Any help would be kindly appreciated.

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

Hi iam trying to evaluate your library and got few questions.

this example Realtime Ghosted Traces looks weard with Gforce 4060 and win11.

1 vote
17k views

I am trying to set the extents of a chart beyond where the data stops, ex. data stops at 22 hours and I would like the chart to go to 24 hours. I would also like double clicking to go back to 24 hours after zooming, and I would like to be able to retrieve this extent later. Right now I set the visible range to 24, but it automatically re-sizes to 22 and when I use XAxis.GetMaximumRange, it also gives me 22. I would like to set the min and max to a specific number, so I don’t think GrowBy is the answer. I tried AutoRangeOnStartup but it seems to be deprecated. Is there any way to do what I am trying to achieve?

Thanks,
Greg

0 votes
11k views

Hey

What would be price to upgrade from basic to source code?

0 votes
15k views

Hi,

How can i listen annotation selection changes? I try this code but i’m getting error “Cannot assign to property: ‘lineAnnotation’ is immutable”

var lineAnnotation = SCILineAnnotation()
lineAnnotation.annotationSelectionChangedListener = { (annotation, isSelected) in
//
}

Tnx.

0 votes
0 answers
20k views

I have a Chart with two Y-Axes, one on the left and one on the right for a SeriesvalueModifier.
i need to bind the VisibleRange to a Property in the ViewModel. Everything works fine, except for if i zoom via the MouseWheelZoomModifier.
It looks like the Chart gets “stretched” in Y direction. I guess the modifier zooms on both axes, so the property they are both bound to gets two updates, one for each axis.
When i bind the VisibleRange of Axis[A] to theVisibleRange of Axis[B] which is bound to the property also won’t work.
Do you have any idea how this could be fixed ?

what i want to achieve is this behavior:

https://www.scichart.com/questions/question/faq-how-to-have-two-yaxis-on-left-and-right-with-the-same-visiblerange-mirrored-yaxis

 Axis[A]
            <s:NumericAxis
                x:Name="NumericAxis_Mass"
                x:Key="NumericAxis_Mass"
                Id="NumericAxis_Mass"
                AxisTitle="{ext:Localization Chart_Axis_PartialPressure}"
                GrowBy="0.1,0.1"
                VisibleRange="{Binding YVisibleRange,
                                Mode=TwoWay,
                                UpdateSourceTrigger=PropertyChanged,
                                NotifyOnSourceUpdated=True,
                                NotifyOnTargetUpdated=True}" 
                AutoRange="{Binding AnalysesAutoRange_y,
                           Mode=TwoWay,
                           UpdateSourceTrigger=PropertyChanged,
                           NotifyOnSourceUpdated=True,
                           NotifyOnTargetUpdated=True}"
                AxisAlignment="Left"
                Style="{StaticResource Chart.NumericAxis.Style}" />

Axis[B]
                <s:NumericAxis
                x:Key="NumericAxis_Mass_Empty"
                x:Name="NumericAxis_Mass_Empty"
                GrowBy="0.1,0.1"
                TextFormatting="0.00E+00"
                VisibleRange="{Binding YVisibleRange,
                                Mode=TwoWay,
                                UpdateSourceTrigger=PropertyChanged,
                                NotifyOnSourceUpdated=True,
                                NotifyOnTargetUpdated=True}"            
                AutoRange="{Binding AnalysesAutoRange_y,
                           Mode=TwoWay,
                           UpdateSourceTrigger=PropertyChanged,
                           NotifyOnSourceUpdated=True,
                           NotifyOnTargetUpdated=True}"
                AxisAlignment="Right"
                Style="{StaticResource Chart.NumericAxis.Style}"
                DrawLabels="False"
                DrawMajorBands="False"
                DrawMajorGridLines="False"
                DrawMajorTicks="False"
                DrawMinorGridLines="False"
                DrawMinorTicks="False"
                Margin="35,0,0,0"
                Width="auto" />
  • Dirk Heyne asked 9 years ago
  • last active 9 years ago
0 votes
12k views

We have lots of Point Markers in our series that overlap, so we’re trying to find a way to Cluster them in Android and iOS. I can see that there is an SCIPointMarkerClusterizer. Can you give us some pointers on how we can achieve point marker clustering and/or spacing?

2 votes
19k views

Hi There,

I work for a company where they use WPF SciChart alot in many applications.I am new bee to SciChart but I need to learn them in deep to meet our user requirements.So can you please let us know how can we get good command of sci charts.Are there any video tutorials? Are there any simple samples to start.

Regards,
Priya

  • priya asked 12 years ago
  • last active 12 years ago
0 votes
10k views

Dear all,

I have an MVVM model which host the property ChartDataSeries as below :

 public ObservableCollection<IRenderableSeriesViewModel> ChartDataSeries
    {
        get { return _seriesViewModels; }
        set
        {
            SetProperty(ref this._seriesViewModels, value);
        }

What I ham trying to do is to identifier the selected serie user select in the chart and find it afterward in the ChartDataSeries collection in order to set a property IsSelected=true but trouble is that I cannot reach the selected Data serie from the collection.

I have bee through your sample but could not get it either

Any y help or idea how to do ?

regards

0 votes
11k views

Hi ,

I am facing a issue with the tooltips.When the scichart surface width is small or the window that has the scichartsurface is small the tooltips are not coming out of chart surface. I can reproduce the issue in Scichart sample(CustomTooltipsWithModifiers) also.

I even tried setting ClipModifierSurface =”False” ClipToBounds=”False”, but no luck. I still have the issue.

FYI , I am attaching the .png files. I cannot attach the sample project here because the allowed upload size is smaller.

Thanks,
Rakesh Bandari.

1 vote
13k views

Hello,

Is there away to extend a LineAnnotationViewModel to the right? I see there is a ExtendedLineAnnotaion
But that only seems to be available in the DrawingTools API.

Thank you

  • Leland asked 3 years ago
  • last active 3 years ago
0 votes
12k views

I want to use my custom image as a background for SciChart js.
I tried to put background-image to body of the page.
Then I enabled transparent background via:

sciChartSurface.backgroundCompletelyTransparentEnabled = true;

But it doesn’t work. It does nothing.
Then I tried to put transparent background to SciChart:

sciChartSurface.background = "#00000000";

But it doesn’t work as well. Chart completely disappears in this case.

How can I put my image as a background for SciChart?

  • Roman Zye asked 5 years ago
  • last active 5 years ago
0 votes
12k views

I have 2 charts in my application. They work fine until I add an event to the chart (xaml). The Designer gives an Unhandled Exception with the following details

System.ArgumentException
An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add)
at Microsoft.Expression.DesignModel.Metadata.MemberCollection.get_FieldIndex()
at Microsoft.Expression.DesignModel.Metadata.MemberCollection.CreateField(String fieldName, MemberKey& key)
at Microsoft.Expression.DesignModel.Metadata.MemberCollection.CreateMember(MemberType memberTypes, String memberName, MemberKey& key)
at Microsoft.Expression.DesignModel.Metadata.MemberCollection.TryGetCachedMember(MemberType memberTypes, String memberName, Boolean create, IMember& member)
at Microsoft.Expression.DesignModel.Metadata.MemberCollection.GetMember(MemberType memberTypes, String memberName, MemberAccessTypes access)
at Microsoft.Expression.DesignModel.Metadata.ProjectContextType.GetMember(MemberType memberTypes, String memberName, MemberAccessTypes access)
at Microsoft.Expression.Markup.XamlTypeHelper.GetPropertyKey(XamlParserContext parserContext, ITextLocation lineInformation, XmlNamespace xmlNamespace, String typeAndPropertyName, XmlNamespace targetTypeNamespace, IType targetTypeId, MemberType memberTypes, MemberType defaultType, Boolean allowProtectedPropertiesOnTargetType)
at Microsoft.Expression.Markup.XamlParser.GetPropertyKey(XamlParserContext parserContext, XmlElementReference xmlElementReference, XmlElement xmlElement, XmlAttribute attribute, IType targetType, Boolean allowProtectedPropertiesOnTargetType, IProperty& propertyKey)
at Microsoft.Expression.Markup.XamlParser.AddPropertiesAndChildren(XamlParserContext parserContext, DocumentCompositeNodeReference nodeReference, XmlElementReference xmlElementReference, XmlElement xmlElement, Predicate
1 propertyFilter)
at Microsoft.Expression.Markup.XamlParser.AddPropertiesAndChildren(XamlParserContext parserContext, DocumentCompositeNodeReference nodeReference, XmlElementReference xmlElementReference, XmlElement xmlElement)
at Microsoft.Expression.Markup.XamlParser.ParseCompositeElement(XamlParserContext parserContext, IDocumentNodeReference nodeReference, IType typeId, XmlElementReference xmlElementReference, XmlElement xmlElement)
at Microsoft.Expression.Markup.XamlParser.ParseElementContent(XamlParserContext parserContext, IDocumentNodeReference nodeReference, IType typeId, XmlElementReference xmlElementReference, XmlElement xmlElement)
at Microsoft.Expression.Markup.XamlParser.ParseElement(XamlParserContext parserContext, IDocumentNodeReference nodeReference, XmlElementReference xmlElementReference, XmlElement xmlElement, DocumentNode& node)
at Microsoft.Expression.Markup.XamlParser.ParseRegion(IReadableSelectableTextBuffer textBuffer, DocumentNode parentNode, DocumentNode oldNode, ITextRange span, IList1& errors)
at Microsoft.Expression.Markup.XamlLanguageService.IncrementalParse(ITextChangesTracker textChanges, IList
1 errorsAndWarnings, IList`1& newErrors)
at Microsoft.Expression.Markup.MarkupDocument.CommitTextEdits(Boolean forceUpdateIfWarnings)
at Microsoft.Expression.DesignSurface.View.SceneView.CommitTextEditsInternal(Boolean forceUpdateIfWarnings)
at Microsoft.Expression.DesignSurface.View.SceneView.SynchronizeTextEdits()
at Microsoft.Expression.DesignSurface.View.SceneView.StopTimerAndCommitTextEdits()
at Microsoft.Expression.DesignSurface.View.SceneView.TextCommitTimeoutTimer_Tick(Object sender, EventArgs e)
at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at Microsoft.Expression.DesignHost.Isolation.DesignerProcess.RunApplication()
at Microsoft.Expression.DesignHost.Isolation.DesignerProcess.<>c__DisplayClass2.

b__0()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

The Chart code is as below. If I remove the Preview mouse down and reload then it woks fine.

        <s:SciChartSurface x:Name="sciChartFull" s:ThemeManager.Theme="Chrome" Grid.Column="0" PreviewMouseDown="sciChartFull_PreviewMouseDown"  >
            <s:SciChartSurface.RenderableSeries>
                <s:FastLineRenderableSeries x:Name="lineSeriesFull" SeriesColor="#FFBB6464" />
                <s:XyScatterRenderableSeries x:Name="pointSeriesFull">
                    <s:XyScatterRenderableSeries.PointMarker>
                        <s:EllipsePointMarker Width="5" Height="5" Fill="#FF04571B" Stroke="#FF04571B" StrokeThickness="1"></s:EllipsePointMarker>
                    </s:XyScatterRenderableSeries.PointMarker>
                </s:XyScatterRenderableSeries>
            </s:SciChartSurface.RenderableSeries>
            <s:SciChartSurface.XAxis>
                <s:TimeSpanAxis DrawMajorGridLines="False" DrawMinorGridLines="False" />
            </s:SciChartSurface.XAxis>
            <s:SciChartSurface.YAxis>
                <s:NumericAxis DrawMajorGridLines="False" DrawMinorGridLines="False" Visibility="Collapsed"/>
            </s:SciChartSurface.YAxis>
        </s:SciChartSurface>
Showing 51 - 100 of 5k results