This is a migrated thread and some comments may be shown as answers.

Multiple Axes example

2 Answers 93 Views
Chart
This is a migrated thread and some comments may be shown as answers.
DTC
Top achievements
Rank 1
DTC asked on 02 Jan 2017, 10:02 AM

Hi everyone, could you give me a example how to use mulitple axes in Xamarin.iOS,  it looks like example here http://d585tldpucybw.cloudfront.net/sfimages/default-source/productsimages/ui-for-xamarin/chart/axes_type_support.png?sfvrsn=2 ,  
I have download example in apple appStore, but i can't find example like that , 

thanks 

2 Answers, 1 is accepted

Sort by
0
Accepted
Lance | Manager Technical Support
Telerik team
answered on 03 Jan 2017, 04:22 PM
Hello Dang,

You can find an example of configuring the Axes like that here in the Axes Overview documentation (see the "Spending on Education" example). In addition to configuring the Axes, take a look at how to create a LineSeries here and a ColumnSeries here.

If you'd like to explore the full examples, you can find them on your machine at: C:\Program Files (x86)\Telerik\UI for Xamarin R3 2016\Examples\iOS 

After opening the solution, find the Multiple Axes chart demo here (for your convenience, I've pasted in the code at the end of this replyt)




Please let us know if you have any further questions.


License note:
I see that your license has expired, you can get your UI for Xamarin license and submit support tickets directly to the UI for Xamarin support team if you upgrade your DevCraft Complete to a DevCraft Ultimate. Please let us know if we can help assist.


Multiple Axes Example code:

public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();
 
            TKChart chart = new TKChart (this.View.Bounds);
            chart.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
            this.View.AddSubview (chart);
 
            TKChartNumericAxis gdpInPoundsYAxis = new TKChartNumericAxis (new NSNumber(1050), new NSNumber(1400));
            gdpInPoundsYAxis.MajorTickInterval = 50;
            gdpInPoundsYAxis.Position = TKChartAxisPosition.Left;
            gdpInPoundsYAxis.Style.LabelStyle.TextAlignment = TKChartAxisLabelAlignment.Left;
            gdpInPoundsYAxis.Style.MajorTickStyle.TicksHidden = false;
            gdpInPoundsYAxis.Style.LineHidden = false;
            chart.AddAxis (gdpInPoundsYAxis);
            chart.YAxis = gdpInPoundsYAxis;
 
            // >> chart-axis-position-cs
            TKChartDateTimeAxis periodXAxis = new TKChartDateTimeAxis ();
            periodXAxis.MajorTickIntervalUnit = TKChartDateTimeAxisIntervalUnit.Years;
            periodXAxis.MinorTickIntervalUnit = TKChartDateTimeAxisIntervalUnit.Years;
            periodXAxis.MajorTickInterval = 1;
            periodXAxis.Position = TKChartAxisPosition.Bottom;
            periodXAxis.PlotMode = TKChartAxisPlotMode.BetweenTicks;
            chart.AddAxis (periodXAxis);
 
            TKChartNumericAxis gdpInvestmentYAxis = new TKChartNumericAxis (new NSNumber(0), new NSNumber(20));
            gdpInvestmentYAxis.MajorTickInterval = 5;
            gdpInvestmentYAxis.Position = TKChartAxisPosition.Right;
            gdpInvestmentYAxis.Style.LabelStyle.TextAlignment = TKChartAxisLabelAlignment.Left;
            gdpInvestmentYAxis.Style.MajorTickStyle.TicksHidden = false;
            gdpInvestmentYAxis.Style.LineHidden = false;
            chart.AddAxis (gdpInvestmentYAxis);
            // << chart-axis-position-cs
 
            TKChartNumericAxis gdpGrowthUpAnnualChangeYAxis = new TKChartNumericAxis (new NSNumber(-6), new NSNumber(4));
            gdpGrowthUpAnnualChangeYAxis.MajorTickInterval = 1;
            gdpGrowthUpAnnualChangeYAxis.Position = TKChartAxisPosition.Right;
            gdpGrowthUpAnnualChangeYAxis.Style.LabelStyle.TextAlignment = TKChartAxisLabelAlignment.Left;
            gdpGrowthUpAnnualChangeYAxis.Style.MajorTickStyle.TicksHidden = false;
            gdpGrowthUpAnnualChangeYAxis.Style.LineHidden = false;
            chart.AddAxis (gdpGrowthUpAnnualChangeYAxis);
 
            TKChartNumericAxis grossNationalSavingsAnnualGrowthUpYAxis = new TKChartNumericAxis (new NSNumber(0), new NSNumber(16));
            grossNationalSavingsAnnualGrowthUpYAxis.MajorTickInterval = 2;
            grossNationalSavingsAnnualGrowthUpYAxis.Position = TKChartAxisPosition.Right;
            grossNationalSavingsAnnualGrowthUpYAxis.Style.LabelStyle.TextAlignment = TKChartAxisLabelAlignment.Left;
            grossNationalSavingsAnnualGrowthUpYAxis.Style.MajorTickStyle.TicksHidden = false;
            grossNationalSavingsAnnualGrowthUpYAxis.Style.LineHidden = false;
            chart.AddAxis (grossNationalSavingsAnnualGrowthUpYAxis);
 
            NSDate date2001 = DateWithYear (2001, 12, 31);
            NSDate date2002 = DateWithYear (2002, 12, 31);
            NSDate date2003 = DateWithYear (2003, 12, 31);
            NSDate date2004 = DateWithYear (2004, 12, 31);
            NSDate date2005 = DateWithYear (2005, 12, 31);
 
            TKChartDataPoint[] gdpInPounds = new TKChartDataPoint[] {
                new TKChartDataPoint(date2001, new NSNumber(1200)),
                new TKChartDataPoint(date2002, new NSNumber(1200)),
                new TKChartDataPoint(date2003, new NSNumber(1225)),
                new TKChartDataPoint(date2004, new NSNumber(1300)),
                new TKChartDataPoint(date2005, new NSNumber(1350))
            };
 
            TKChartColumnSeries gdpInPoundsSeries = new TKChartColumnSeries  (gdpInPounds);
            gdpInPoundsSeries.XAxis = periodXAxis;
            gdpInPoundsSeries.YAxis = gdpInPoundsYAxis;
            gdpInPoundsSeries.Selection = TKChartSeriesSelection.Series;
            chart.AddSeries (gdpInPoundsSeries);
 
            TKChartDataPoint[] gdpGrowthUpAnnual = new TKChartDataPoint[] {
                new TKChartDataPoint (date2001, new NSNumber (4)),
                new TKChartDataPoint (date2002, new NSNumber (3)),
                new TKChartDataPoint (date2003, new NSNumber (2)),
                new TKChartDataPoint (date2004, new NSNumber (-5)),
                new TKChartDataPoint (date2005, new NSNumber (1))
            };
 
            float shapeSize = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone ? 7 : 17;
 
            TKChartLineSeries gdpGrowthUpSeries = new TKChartLineSeries (gdpGrowthUpAnnual);
            gdpGrowthUpSeries.Style.PointShape = new TKPredefinedShape (TKShapeType.Circle, new SizeF (shapeSize, shapeSize));
            gdpGrowthUpSeries.XAxis = periodXAxis;
            gdpGrowthUpSeries.YAxis = gdpGrowthUpAnnualChangeYAxis;
            gdpGrowthUpSeries.Selection = TKChartSeriesSelection.DataPoint;
            gdpGrowthUpSeries.Style.ShapeMode = TKChartSeriesStyleShapeMode.AlwaysShow;
            chart.AddSeries (gdpGrowthUpSeries);
 
            TKChartDataPoint[] grossAnualSavings = new TKChartDataPoint[] {
                new TKChartDataPoint (date2001, new NSNumber (14)),
                new TKChartDataPoint (date2002, new NSNumber (8)),
                new TKChartDataPoint (date2003, new NSNumber (12)),
                new TKChartDataPoint (date2004, new NSNumber (11)),
                new TKChartDataPoint (date2005, new NSNumber (16))
            };
 
            TKChartLineSeries grossAnualSavingsSeries = new TKChartLineSeries (grossAnualSavings);
            grossAnualSavingsSeries.Style.PointShape = new TKPredefinedShape (TKShapeType.Circle, new SizeF(shapeSize, shapeSize));
            grossAnualSavingsSeries.XAxis = periodXAxis;
            grossAnualSavingsSeries.YAxis = grossNationalSavingsAnnualGrowthUpYAxis;
            grossAnualSavingsSeries.Selection = TKChartSeriesSelection.DataPoint;
            grossAnualSavingsSeries.Style.ShapeMode = TKChartSeriesStyleShapeMode.AlwaysShow;
            chart.AddSeries (grossAnualSavingsSeries);
 
            TKChartDataPoint[] gdpInvestment = new TKChartDataPoint[] {
                new TKChartDataPoint (date2001, new NSNumber (15)),
                new TKChartDataPoint (date2002, new NSNumber (13)),
                new TKChartDataPoint (date2003, new NSNumber (16)),
                new TKChartDataPoint (date2004, new NSNumber (19)),
                new TKChartDataPoint (date2005, new NSNumber (15))
            };
 
            TKChartLineSeries gdpInvestmentSeries = new TKChartLineSeries (gdpInvestment);
            gdpInvestmentSeries.Style.PointShape = new TKPredefinedShape (TKShapeType.Circle, new SizeF(shapeSize, shapeSize));
            gdpInvestmentSeries.XAxis = periodXAxis;
            gdpInvestmentSeries.YAxis = gdpInvestmentYAxis;
            gdpInvestmentSeries.Selection = TKChartSeriesSelection.DataPoint;
            gdpInvestmentSeries.Style.ShapeMode = TKChartSeriesStyleShapeMode.AlwaysShow;
            chart.AddSeries (gdpInvestmentSeries);
 
            this.setStyles (gdpInPoundsSeries);
            this.setStyles (grossAnualSavingsSeries);
            this.setStyles (gdpGrowthUpSeries);
            this.setStyles (gdpInvestmentSeries);
 
            chart.ReloadData ();
        }
 
        public void setStyles(TKChartSeries series)
        {
            TKChartPaletteItem item = series.Style.Palette.PaletteItemAtIndex (series.Index);
            if (series is TKChartColumnSeries && item.Drawables.Length > 1) {
                NSObject drawable = item.Drawables [2];
 
                if (drawable is TKStroke) {
                    TKStroke stroke = drawable as TKStroke;
                    series.YAxis.Style.LineStroke = new TKStroke (stroke.Fill);
                }
                else {
                    series.YAxis.Style.LineStroke = new TKStroke (item.Stroke.Fill);
                }
            }
            else {
                series.YAxis.Style.LineStroke = new TKStroke(item.Stroke.Fill);
            }
            series.YAxis.Style.MajorTickStyle.TicksFill = series.YAxis.Style.LineStroke.Fill;
 
            // >> chart-tick-style-clipping-cs
            series.YAxis.Style.MajorTickStyle.MaxTickClippingMode = TKChartAxisClippingMode.Visible;
            series.YAxis.Style.MajorTickStyle.MinTickClippingMode = TKChartAxisClippingMode.Visible;
            // << chart-tick-style-clipping-cs
 
            if (series.YAxis.Style.MajorTickStyle.TicksFill is TKSolidFill) {
                TKSolidFill solidFill = series.YAxis.Style.MajorTickStyle.TicksFill as TKSolidFill;
                series.YAxis.Style.LabelStyle.TextColor = solidFill.Color;
            }
 
        }
 
        public NSDate DateWithYear(int year, int month, int day)
        {
            NSCalendar calendar = new NSCalendar (NSCalendarType.Gregorian);
            NSDateComponents components = new NSDateComponents ();
            components.Year = year;
            components.Month = month;
            components.Day = day;
            return calendar.DateFromComponents (components);
        }


Regards,
Lance | Tech Support Engineer, Sr.
Telerik by Progress
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
DTC
Top achievements
Rank 1
answered on 04 Jan 2017, 10:35 AM
Thank you, i have found it 
Tags
Chart
Asked by
DTC
Top achievements
Rank 1
Answers by
Lance | Manager Technical Support
Telerik team
DTC
Top achievements
Rank 1
Share this question
or