Axis Style
This sample uses C# 13 preview features such as partial properties, it also uses features from the CommunityToolkit.Mvvm package, you can learn more about it here.
This web site wraps every sample using a ContentPage instance, but LiveCharts controls can be used inside any container.
View model
using System.Collections.Generic;
using LiveChartsCore;
using LiveChartsCore.Defaults;
namespace ViewModelsSamples.Axes.Style;
public class ViewModel
{
public ObservablePoint[] Values { get; set; } = Fetch();
private static ObservablePoint[] Fetch()
{
var list = new List<ObservablePoint>();
var fx = EasingFunctions.BounceInOut;
for (var x = 0f; x < 1f; x += 0.001f)
{
var y = fx(x);
list.Add(new()
{
X = x - 0.5,
Y = y - 0.5
});
}
return [.. list];
}
}
XAML
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class="MauiSample.Axes.Style.View"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.Maui;assembly=LiveChartsCore.SkiaSharpView.Maui"
xmlns:vms="clr-namespace:ViewModelsSamples.Axes.Style;assembly=ViewModelsSamples"
x:DataType="vms:ViewModel">
<ContentPage.BindingContext>
<vms:ViewModel/>
</ContentPage.BindingContext>
<ContentPage.Resources>
<x:String x:Key="gray">#c3c3c3</x:String>
<x:String x:Key="gray1">#a0a0a0</x:String>
<x:String x:Key="gray2">#5a5a5a</x:String>
<x:String x:Key="gray3">#3c3c3c</x:String>
</ContentPage.Resources>
<lvc:CartesianChart
Margin="20"
DrawMarginFrame="{lvc:Frame Stroke={lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=2}}"
ZoomMode="Both"
BackgroundColor="#303030"
TooltipPosition="Hidden">
<lvc:CartesianChart.Series>
<lvc:SeriesCollection>
<lvc:XamlLineSeries
Values="{Binding Values}"
Stroke="{lvc:SolidColorPaint Color='#2196F3', StrokeWidth=4}"
Fill="{x:Null}"
GeometryFill="{x:Null}"
GeometryStroke="{x:Null}"/>
</lvc:SeriesCollection>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.XAxes>
<lvc:AxesCollection>
<lvc:XamlAxis
AxisName="X Axis"
NamePaint="{lvc:SolidColorPaint
Color={StaticResource gray1}}"
TextSize="18"
LabelsPaint="{lvc:SolidColorPaint
Color={StaticResource gray}}"
SeparatorsPaint="{lvc:SolidColorPaint
Color={StaticResource gray},
StrokeWidth=1,
PathEffect={lvc:Dashed Array='3,3'}}"
SubseparatorsPaint="{lvc:SolidColorPaint
Color={StaticResource gray2},
StrokeWidth=0.5}"
SubseparatorsCount="9"
ZeroPaint="{lvc:SolidColorPaint
Color={StaticResource gray1},
StrokeWidth=2}"
TicksPaint="{lvc:SolidColorPaint
Color={StaticResource gray},
StrokeWidth=1.5}"
SubticksPaint="{lvc:SolidColorPaint
Color={StaticResource gray},
StrokeWidth=1}"/>
</lvc:AxesCollection>
</lvc:CartesianChart.XAxes>
<lvc:CartesianChart.YAxes>
<lvc:AxesCollection>
<lvc:XamlAxis
AxisName="Y Axis"
NamePaint="{lvc:SolidColorPaint
Color={StaticResource gray1}}"
TextSize="18"
LabelsPaint="{lvc:SolidColorPaint
Color={StaticResource gray}}"
SeparatorsPaint="{lvc:SolidColorPaint
Color={StaticResource gray},
StrokeWidth=1,
PathEffect={lvc:Dashed Array='3,3'}}"
SubseparatorsPaint="{lvc:SolidColorPaint
Color={StaticResource gray2},
StrokeWidth=0.5}"
SubseparatorsCount="9"
ZeroPaint="{lvc:SolidColorPaint
Color={StaticResource gray1},
StrokeWidth=2}"
TicksPaint="{lvc:SolidColorPaint
Color={StaticResource gray},
StrokeWidth=1.5}"
SubticksPaint="{lvc:SolidColorPaint
Color={StaticResource gray},
StrokeWidth=1}"/>
</lvc:AxesCollection>
</lvc:CartesianChart.YAxes>
</lvc:CartesianChart>
</ContentPage>