Custom Axis Annotation

In some situations you may need to create custom axis annotation. The following scenarios can be useful for creating custom axis annotation:

      When the ItemsSource property is a collection of numbers or DateTime values the chart uses these values as axis labels. The following code uses the ItemsSource property to create the custom Y-axis labels:

c1Chart1.Reset(true);

 

        c1Chart1.Data.Children.Add(

          new DataSeries() { ValuesSource = new double[] { 1, 2, 1, 3, 1, 4 } });

        c1Chart1.ChartType = ChartType.LineSymbols;

 

        c1Chart1.View.AxisY.ItemsSource = new double[] { 1.25, 1.5, 1.75, 4 };

 

Here is what the chart appears like after adding the preceding code:

 

      When the ItemsSource property is a collection of KeyValuePair<object, double> or KeyValuePair<object, DateTime> the chart creates axis label based on the provided pairs of values. For example, the following code uses the KeyValuePair to create the custom axis annotation for the Y axis:

c1Chart1.Reset(true);

 

        c1Chart1.Data.Children.Add(

          new DataSeries() { ValuesSource = new double[] { 1, 2, 1, 3, 1, 4 } });

        c1Chart1.ChartType = ChartType.LineSymbols;

 

        c1Chart1.View.AxisY.ItemsSource = new List<KeyValuePair<object,double>>

          { new KeyValuePair<object,double>("Min=1", 1),

            new KeyValuePair<object,double>("Average=2.5", 2.5),

            new KeyValuePair<object,double>("Max=4", 4)};

Here is what the chart appears like after adding the preceding code:

 

      You can use the ItemsValueBinding and ItemsLabelBinding properties to create axis labels using arbitrary collection as data source, like in the following code:

   c1Chart1.Reset(true);

 

        Point[] pts = new Point[] { new Point(1, 1.3), new Point(2, 2.7), new Point(3, 3.9) };

        c1Chart1.DataContext = pts;

        c1Chart1.ChartType = ChartType.LineSymbols;

 

        c1Chart1.View.AxisY.ItemsSource = pts;

        c1Chart1.View.AxisY.ItemsValueBinding = new Binding("Y");

        c1Chart1.View.AxisY.ItemsLabelBinding = new Binding();

Here is what the chart appears like after adding the preceding code:

 


Send us comments about this topic.
Copyright © GrapeCity, inc. All rights reserved.