Programatically X axis

Is it possible to create 4 labels in the x axis always? I'm searching to accomplish something like this.
I know you can define an interval de time and an interval type for the x axis, but I'd like to alway have 4 labels.



1 Reply 1 reply marked as answer

YP Yuvaraj Palanisamy Syncfusion Team January 8, 2021 12:44 PM UTC

Hi Jorge Valenzuela, 
 
Greetings from Syncfusion. 
 
We have achieved your requirement “Always show 4 Labels in primary axis” by using SeriesRendered event of SfChart in Xamarin.Forms. Please find the below code snippet. 
 
CodeSnippet: 
<chart:SfChart x:Name="ChartControl" SeriesRendered="ChartControl_SeriesRendered" Margin="20"  VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" > 
    <chart:SfChart.PrimaryAxis> 
        <local:ChartAxisExt x:Name="XAxis" EdgeLabelsVisibilityMode="AlwaysVisible" EdgeLabelsDrawingMode="Fit" > 
             
       . . . 
 
        </local:ChartAxisExt> 
    </chart:SfChart.PrimaryAxis> 
. . . 
</chart:SfChart> 
 
 
private void ChartControl_SeriesRendered(object sender, EventArgs e) 
{ 
    var min = (ChartControl.PrimaryAxis as DateTimeAxis).VisibleMinimum; 
    var max = (ChartControl.PrimaryAxis as DateTimeAxis).VisibleMaximum; 
 
    var range = max - min; 
    var visibleLabelRange = range / 4;   //Label count (4 - 1)= 3 
    DateTime baseDate = new DateTime(1899, 12, 30); 
 
    var intervalRange = min + visibleLabelRange; 
    var intervalDate = baseDate.AddDays(intervalRange); 
    var minimumDate = baseDate.AddDays(min); 
    var d = intervalDate.Subtract(minimumDate); 
    XAxis.Interval = d.Minutes; 
    XAxis.IntervalType = DateTimeIntervalType.Minutes; 
 
} 
 
Also, we have attached the sample for your reference. Please find the sample from the below link.  
   
  
Output: 
 
 
Regards, 
Yuvaraj. 


Marked as answer
Loader.
Up arrow icon