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

0 votes
0 answers
1k views

I use VerticallStackedAxes of SciChart component and add 7 AxisMarkerAnnotation to each NumericAxis but AxisMarkerAnnotations not draggable except first of them.

this is the part of my UserControl code:

<s:SciChartSurface.YAxes>








</s:SciChartSurface.YAxes>

        <s:SciChartSurface.ChartModifier>
            <s:ModifierGroup>
                <s:RubberBandXyZoomModifier IsXAxisOnly="True"/>
                <s:ZoomExtentsModifier/>
                <s:CursorModifier ShowAxisLabels="False" ShowTooltip="False"/>
            </s:ModifierGroup>
        </s:SciChartSurface.ChartModifier>

        <s:SciChartSurface.Annotations>

            <!-- Draws Bands behind each axis -->
            <s:BoxAnnotation YAxisId="Ch0" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch0}" Y2="{Binding VisibleRange.Max, ElementName=Ch0}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch1" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch1}" Y2="{Binding VisibleRange.Max, ElementName=Ch1}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch2" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch2}" Y2="{Binding VisibleRange.Max, ElementName=Ch2}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch3" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch3}" Y2="{Binding VisibleRange.Max, ElementName=Ch3}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch4" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch4}" Y2="{Binding VisibleRange.Max, ElementName=Ch4}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch5" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch5}" Y2="{Binding VisibleRange.Max, ElementName=Ch5}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch6" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch6}" Y2="{Binding VisibleRange.Max, ElementName=Ch6}" Background="#11000000" AnnotationCanvas="BelowChart"/>
            <s:BoxAnnotation YAxisId="Ch7" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch7}" Y2="{Binding VisibleRange.Max, ElementName=Ch7}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/>

            <s:AxisMarkerAnnotation X1="0.0" 
                                    Y1="0.0"
                                    YAxisId="Ch0"
                                    IsEditable="True"
                                    LabelTemplate="{StaticResource AxisMarkerTemplate}"
                                    PointerTemplate="{StaticResource DefaultAxisPointerTemplate}"/>

            <s:AxisMarkerAnnotation X1="0.0" 
                                    Y1="0.0"
                                    YAxisId="Ch1"
                                    IsEditable="True"
                                    LabelTemplate="{StaticResource AxisMarkerTemplate}"
                                    PointerTemplate="{StaticResource DefaultAxisPointerTemplate}"/>
        </s:SciChartSurface.Annotations>

You can find source code Here
thanks

0 votes
2k views

I’m currently trying to adapt an example to post here as an example repro– But in the meantime I figured I’d post and see if there are any fundamental problems with trying to do this.

The exception message states:

Additional information: Cannot get data-value from coordinate as the associated Axis is null
1 vote
0 answers
3k views

Hi,

I’m having the same problem as corvex here: https://www.scichart.com/questions/question/problem-with-the-horizontal-line-annotations-on-vertically-stacked-axes, but I wasn’t sure if replying to his topic (which is older) would get the support team’s attention.

I am basically combining the VerticallyStackedAxes example with the SeriesTooltipsExample. The labels for the annotations are drawn in the wrong place below the chart. The main difference is that I am running 3.42.0.6778 (Runtime version v4.0.30319) and he was running an older version.

Attached is an image and my XAML

<Window.DataContext>

</Window.DataContext>

<Window.Resources>
    <Style x:Key="YAxisStyle" TargetType="s:AxisBase">
        <Setter Property="HorizontalAlignment" Value="Right" />
        <Setter Property="AutoRange" Value="Never" />
        <Setter Property="AxisAlignment" Value="Right" />
        <Setter Property="DrawMinorGridLines" Value="False" />
        <Setter Property="DrawMinorTicks" Value="False" />
        <Setter Property="DrawMajorGridLines" Value="True" />
        <Setter Property="DrawMajorBands" Value="False" />
    </Style>
    <ItemsPanelTemplate x:Key="YAxesPanel">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="10" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
        </Grid>
    </ItemsPanelTemplate>
</Window.Resources>

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <!--  Create the chart surface  -->
    <s:SciChartSurface x:Name="MassChart" Grid.Column="2" Grid.ColumnSpan="2" Grid.RowSpan="2"
                       s:ThemeManager.Theme="Chrome" LeftAxesPanelTemplate="{StaticResource YAxesPanel}" RightAxesPanelTemplate="{StaticResource YAxesPanel}">
        <!--  Create an X Axis with Growby  -->
        <s:SciChartSurface.XAxis>
            <s:NumericAxis GrowBy="0.1, 0.1" TextFormatting="#" ScientificNotation="None" MaxAutoTicks="30"
                           DrawMinorTicks="False" DrawMinorGridLines="False" AutoRange="Never"
                           VisibleRange="0,29" />
        </s:SciChartSurface.XAxis>

        <!--  Create a Y Axis with Growby. Optional bands give a cool look and feel for minimal performance impact  -->
        <s:SciChartSurface.YAxes>
            <s:NumericAxis x:Name="Precut" AxisTitle="Precut" Id="Precut" Style="{StaticResource YAxisStyle}" GrowBy="0.5, 0.5"
                           DrawMajorBands="True" TextFormatting="#.#" VisibleRange="14,22" Grid.Row="0" />
            <s:NumericAxis x:Name="Postcut" AxisTitle="Postcut" Id="Postcut" Style="{StaticResource YAxisStyle}" GrowBy="0.5, 0.5" 
                           DrawMajorBands="True" TextFormatting="#.#" VisibleRange="9.6,14" Grid.Row="2" />
        </s:SciChartSurface.YAxes>

        <s:SciChartSurface.RenderableSeries>
            <s:FastLineRenderableSeries DataSeries="{Binding WaferPrecutMassSeries}" SeriesColor="Blue" YAxisId="Precut" />
            <s:FastLineRenderableSeries DataSeries="{Binding WaferPostcutMassSeries}" SeriesColor="Blue" YAxisId="Postcut" />
        </s:SciChartSurface.RenderableSeries>
        <s:SciChartSurface.Annotations>
            <s:HorizontalLineAnnotation HorizontalAlignment="Stretch"
                                        FontSize="12"
                                        LabelPlacement="Axis"
                                        LabelTextFormatting="0.0"
                                        ShowLabel="True"
                                        Stroke="#E53333"
                                        StrokeThickness="2"
                                        YAxisId="Postcut"
                                        Y1="{Binding LowThreshold, Mode=OneWay}" />
            <s:HorizontalLineAnnotation HorizontalAlignment="Stretch"
                                        FontSize="12"
                                        LabelPlacement="Axis"
                                        LabelTextFormatting="0.0"
                                        ShowLabel="True"
                                        Stroke="#33C833"
                                        StrokeThickness="2"
                                        YAxisId="Postcut"
                                        Y1="{Binding HighThreshold, Mode=OneWay}" />
        </s:SciChartSurface.Annotations>
    </s:SciChartSurface>
</Grid>

I’m afraid I don’t know why the code boxes are nested in the question, but in any case, I think it gets the point across.

1 vote
0 answers
5k views

Hi,

I have graph with Verctically Stacked Axes. Each of series have different scale. This means that Grid that holds yAxis ticks and labels has different width for each series.

As Axis Container is StackPanel it leads to problem, how to align AxisTitles ?

What I Would like is to set AxisContainer to Grid with two columns.
The first column for AxisTitle, second column for labels and ticks, with shared size group.
Is it possible?

UPDATE I have added a picture. Fig. 1. shows current state, Fig. 2. shows what i would like to achieve.

Thanks
Jan

  • Jan Kaiser asked 4 years ago
  • last active 4 years ago
1 vote
6k views

I made an example based on the “Vertically Stacked Axes” from SciChart Examples. The main difference is that I can add DataSeries / YAxes on the fly.

The problem is that when I set VisibleRange and VisibleRangeLimit it does not crop the trace (as you can see on the Tan traces that are drawn on the whole surface).

Is there any way to crop the traces to VisibleRange of corresponding Axis?

  • Jan Kaiser asked 4 years ago
  • last active 4 years ago
1 vote
5k views

I made an example based on the “Vertically Stacked Axes” from SciChart Examples. The main difference is that I can add DataSeries / YAxes on the fly.

The problem is that when DrawMajorGridLines, DrawMinorGridLines are turned ON the are drawn only at the first trace.

  • Jan Kaiser asked 4 years ago
  • last active 4 years ago
Showing 6 results
This template supports the sidebar's widgets. Add one or use Full Width layout.