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.