We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

VerticalLineAnnotation over multiple Y axes - scrollable chart

Thread ID:

Created:

Updated:

Platform:

Replies:

141145 Nov 27,2018 04:56 AM UTC Nov 28,2018 09:55 AM UTC WPF 5
loading
Tags: SfChart
Tom
Asked On November 27, 2018 04:56 AM UTC

Hi, this question is similar to this one:

https://www.syncfusion.com/forums/138759/verticallineannotation-over-multiple-y-axes

with the main difference that this time I need the vertical line annotations to scroll with the chart.

These are the requirements:
  • a vertical line annotation at 09:30 am every day (this is only for this sample, in the actual application the annotations will appear in different locations).
  • the annotation must expand over all y axes in the chart.
  • the annotations must "follow" the chart, so that they scroll on a zoomed in chart.
  • good performance.
Complicating factors is that the y axes are custom, and one of them are logarithmic.

Attached is a sample showing how far I got. Everything in the sample works fine, except that the yellow lines only appear on the first y axis. How can I make the lines extend over all y axes?

Thank you.




Attachment: sfChartMultiYaxisAnnotations_7110f08b.rar

Muneesh Kumar G [Syncfusion]
Replied On November 27, 2018 09:55 AM UTC

Hi Tom, 
 
Greetings, we have analyzed your requirement and you can achieve this by setting separate y-axis for VerticalLineAnnotation with RowSpan as 3. Please find the solution code snippet below.  
 
Code snippet 
  <chart:SfChart.SecondaryAxis> 
                <chart:NumericalAxis chart:ChartBase.RowSpan="3" 
                     Visibility="Collapsed"  Name="secondaryAxis"/> 
 
            </chart:SfChart.SecondaryAxis> 
 
 
    YAxisPrice = New CustomLogarithmicYAxis 
        YAxisPrice.Name = "YAxisPrice" 
        YAxisPrice.LogarithmicBase = LogBase 
        YAxisPrice.FontSize = 12 
        YAxisPrice.ShowGridLines = False 
        YAxisPrice.Header = "Price" 
 
 
.. 
 
Sub Annotations() 
 
        For i = 0 To BaseTicker.Minutes.Count - 1 
 
            If BaseTicker.Minutes(i).DateTime.TimeOfDay = TimeSpan.Parse("09:30:00") Then 
 
                Dim newVerticalLineAnnotation As New VerticalLineAnnotation 
                With newVerticalLineAnnotation 
                    .CoordinateUnit = CoordinateUnit.Axis 
                    .XAxisName = XAxis.Name 
                    ' .YAxisName = YAxisPrice.Name 
                    .X1 = i 
                    .StrokeThickness = 1 
                    .ShowLine = True 
                    .YAxisName = "secondaryAxis" 
                    .Stroke = New SolidColorBrush(Colors.Yellow) 
                    .ShowAxisLabel = False 
                    .EnableClipping = False 
                End With 
                chart.Annotations.Add(newVerticalLineAnnotation) 
            End If 
        Next 
 
We have modified your sample based on this, please find the sample from the following location. Now sample works fine with your all requirements.  
 
 
Hope this helps.  
 
Thanks,
Muneesh Kumar G.
 


Tom
Replied On November 27, 2018 01:32 PM UTC

Almost there, now a new problem has arisen which is when setting the rowspan of the secondary axis to multiple chartrows, the red chartrow border lines between each chartrow have dissappeared. How to prevent this? ShowGridLines on the secondary axis should be set to false. The attached image shows what I mean.


Attachment: SnapShot_415_d55727b5.rar

Muneesh Kumar G [Syncfusion]
Replied On November 28, 2018 06:11 AM UTC

Hi Tom, 
 
We analyzed the query and we have resolved this problem by adding empty series with separate y-axis with RowSpan then setting that y-axis to annotation YAxisName property as per the below code snippet.  
 
Code snippet 
'Annotation Series with Axis  
 
        YAxisAnnotation = New NumericalAxis 
        YAxisAnnotation.Name = "YAxisAnnotation" 
        YAxisAnnotation.ShowGridLines = False 
        YAxisAnnotation.Visibility = Visibility.Collapsed 
        SfChart.SetRow(YAxisAnnotation, 0) 'row starts from 0 at the bottom 
        SfChart.SetRowSpan(YAxisAnnotation, 3) 'row ends to 3rd row at the top 
 
        With AnnotationSeries 
            .YAxis = YAxisAnnotation 
        End With 
        chart.Series.Add(AnnotationSeries) 
 
    End Sub 
 
Sub Annotations() 
 
        For i = 0 To BaseTicker.Minutes.Count - 1 
 
            If BaseTicker.Minutes(i).DateTime.TimeOfDay = TimeSpan.Parse("09:30:00") Then 
 
                Dim newVerticalLineAnnotation As New VerticalLineAnnotation 
                With newVerticalLineAnnotation 
                    .CoordinateUnit = CoordinateUnit.Axis 
                    .XAxisName = XAxis.Name 
                    .YAxisName = "YAxisAnnotation" 
                    .X1 = i 
                    .StrokeThickness = 1 
                    .ShowLine = True 
                    .Stroke = New SolidColorBrush(Colors.Yellow) 
                    .ShowAxisLabel = False 
                    .EnableClipping = False 
                End With 
                chart.Annotations.Add(newVerticalLineAnnotation) 
            End If 
        Next 
 
    End Sub 
 
 
Now the VerticalLineAnnotation renders with full chart area with row border as per the below screenshot. 
 
Screnshot: 
 
 
We have modified our sample based on this, please find the sample from the following location.  
 
 
Please let us know if you have any queries.  
 
Thanks, 
Muneesh Kumar G. 


Tom
Replied On November 28, 2018 09:44 AM UTC

Great, thank you Muneesh.

Muneesh Kumar G [Syncfusion]
Replied On November 28, 2018 09:55 AM UTC

Hi Tom,  
  
Thanks for the update. 
  
We are glad to know that the given solution works. Please let us know if you need any further assistance. 

Regards,

Muneesh Kumar G 


CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Please sign in to access our forum

This page will automatically be redirected to the sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

;