diff --git a/android/gradle.properties b/android/gradle.properties
index 9e30671427dd5cd513d8a1f0583cfaf05e2e0a85..630329d24574bec561a762a8792e510540d42a5c 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.50
-app.versionCode=50
+app.versionName=0.0.51
+app.versionCode=51
diff --git a/fastlane/metadata/android/en-US/changelogs/51.txt b/fastlane/metadata/android/en-US/changelogs/51.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9ae924abd91bf2f3dbc67a724e864fc59fccc53a
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/51.txt
@@ -0,0 +1 @@
+Improve vertical axis legends.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/51.txt b/fastlane/metadata/android/fr-FR/changelogs/51.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f95952771545f411ea3a23a449d9048eb81e1c02
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/51.txt
@@ -0,0 +1 @@
+Amélioration des axes verticaux des graphiques.
diff --git a/lib/ui/widgets/abstracts/custom_bar_chart.dart b/lib/ui/widgets/abstracts/custom_bar_chart.dart
index 07a0342e546c812386708f84fdf38cc8f479bf11..9ca47dc578f4d469bd4e52d778999430a028ca6a 100644
--- a/lib/ui/widgets/abstracts/custom_bar_chart.dart
+++ b/lib/ui/widgets/abstracts/custom_bar_chart.dart
@@ -89,47 +89,15 @@ class CustomBarChart extends CustomChart {
     );
   }
 
-  FlTitlesData getTitlesData() {
-    const AxisTitles none = const AxisTitles(
-      sideTitles: SideTitles(showTitles: false),
-    );
-
-    final AxisTitles verticalTitles = AxisTitles(
-      sideTitles: SideTitles(
-        showTitles: true,
-        reservedSize: 35,
-        getTitlesWidget: getVerticalTitlesWidget,
-        interval: this.verticalTicksInterval,
-      ),
-    );
-
-    final AxisTitles verticalSpacer = AxisTitles(
-      sideTitles: SideTitles(
-        showTitles: true,
-        reservedSize: 35,
-        getTitlesWidget: getVerticalTitlesSpacerWidget,
-        interval: this.verticalTicksInterval,
-      ),
-    );
-
-    final AxisTitles horizontalTitles = AxisTitles(
-      sideTitles: SideTitles(
-        showTitles: true,
-        reservedSize: 20,
-        getTitlesWidget: getHorizontalTitlesWidget,
-      ),
-    );
+  Widget getHorizontalTitlesWidget(double value, TitleMeta meta) {
+    return getHorizontalTitlesWidgetWithDate(value, meta);
+  }
 
-    return FlTitlesData(
-      show: true,
-      bottomTitles: horizontalTitles,
-      leftTitles: verticalTitles,
-      topTitles: none,
-      rightTitles: verticalSpacer,
-    );
+  Widget getVerticalLeftTitlesWidget(double value, TitleMeta meta) {
+    return getVerticalTitlesWidgetWithValue(value, meta);
   }
 
-  Widget getHorizontalTitlesWidget(double value, TitleMeta meta) {
-    return getHorizontalTitlesWidgetWithDate(value, meta);
+  Widget getVerticalRightTitlesWidget(double value, TitleMeta meta) {
+    return getVerticalTitlesWidgetWithValue(value, meta);
   }
 }
diff --git a/lib/ui/widgets/abstracts/custom_chart.dart b/lib/ui/widgets/abstracts/custom_chart.dart
index ad555bcf073e17fa6a5ba5028bb4be0a7df2f3da..04c5425a7b576c516f28152a70595de83428b4be 100644
--- a/lib/ui/widgets/abstracts/custom_chart.dart
+++ b/lib/ui/widgets/abstracts/custom_chart.dart
@@ -95,8 +95,42 @@ class CustomChart extends StatelessWidget {
   }
 
   FlTitlesData getTitlesData() {
+    const AxisTitles none = const AxisTitles(
+      sideTitles: SideTitles(showTitles: false),
+    );
+
+    final AxisTitles verticalTitlesLeft = AxisTitles(
+      sideTitles: SideTitles(
+        showTitles: true,
+        reservedSize: 35,
+        getTitlesWidget: getVerticalLeftTitlesWidget,
+        interval: this.verticalTicksInterval,
+      ),
+    );
+
+    final AxisTitles verticalTitleRight = AxisTitles(
+      sideTitles: SideTitles(
+        showTitles: true,
+        reservedSize: 35,
+        getTitlesWidget: getVerticalRightTitlesWidget,
+        interval: this.verticalTicksInterval,
+      ),
+    );
+
+    final AxisTitles horizontalTitles = AxisTitles(
+      sideTitles: SideTitles(
+        showTitles: true,
+        reservedSize: 20,
+        getTitlesWidget: getHorizontalTitlesWidget,
+      ),
+    );
+
     return FlTitlesData(
-      show: false,
+      show: true,
+      bottomTitles: horizontalTitles,
+      leftTitles: verticalTitlesLeft,
+      topTitles: none,
+      rightTitles: verticalTitleRight,
     );
   }
 
@@ -104,6 +138,14 @@ class CustomChart extends StatelessWidget {
     return Text('');
   }
 
+  Widget getVerticalLeftTitlesWidget(double value, TitleMeta meta) {
+    return Text('');
+  }
+
+  Widget getVerticalRightTitlesWidget(double value, TitleMeta meta) {
+    return Text('');
+  }
+
   Widget getHorizontalTitlesWidgetWithDate(double value, TitleMeta meta) {
     final DateFormat formatter = DateFormat('dd/MM');
 
@@ -173,7 +215,7 @@ class CustomChart extends StatelessWidget {
     );
   }
 
-  Widget getVerticalTitlesWidget(double value, TitleMeta meta) {
+  Widget getVerticalTitlesWidgetWithValue(double value, TitleMeta meta) {
     String suffix =
         this.verticalAxisTitleSuffix != '' ? ' ' + this.verticalAxisTitleSuffix : '';
 
diff --git a/lib/ui/widgets/abstracts/custom_line_chart.dart b/lib/ui/widgets/abstracts/custom_line_chart.dart
index 6efc4e7f8fa152abd2a3a5c942ebc3f2d2f46ba3..5bd3b96ddbcb333987921663d6c3c3bc673f7770 100644
--- a/lib/ui/widgets/abstracts/custom_line_chart.dart
+++ b/lib/ui/widgets/abstracts/custom_line_chart.dart
@@ -34,42 +34,11 @@ class CustomLineChart extends CustomChart {
     };
   }
 
-  FlTitlesData getTitlesData() {
-    const AxisTitles none = const AxisTitles(
-      sideTitles: SideTitles(showTitles: false),
-    );
-
-    final AxisTitles verticalTitles = AxisTitles(
-      sideTitles: SideTitles(
-        showTitles: true,
-        reservedSize: 35,
-        getTitlesWidget: getVerticalTitlesWidget,
-        interval: this.verticalTicksInterval,
-      ),
-    );
-
-    final AxisTitles verticalSpacer = AxisTitles(
-      sideTitles: SideTitles(
-        showTitles: true,
-        reservedSize: 35,
-        getTitlesWidget: getVerticalTitlesSpacerWidget,
-      ),
-    );
-
-    final AxisTitles horizontalTitles = AxisTitles(
-      sideTitles: SideTitles(
-        showTitles: true,
-        reservedSize: 20,
-        getTitlesWidget: getHorizontalTitlesWidget,
-      ),
-    );
+  Widget getVerticalLeftTitlesWidget(double value, TitleMeta meta) {
+    return getVerticalTitlesWidgetWithValue(value, meta);
+  }
 
-    return FlTitlesData(
-      show: true,
-      bottomTitles: horizontalTitles,
-      leftTitles: verticalSpacer,
-      topTitles: none,
-      rightTitles: verticalTitles,
-    );
+  Widget getVerticalRightTitlesWidget(double value, TitleMeta meta) {
+    return getVerticalTitlesWidgetWithValue(value, meta);
   }
 }
diff --git a/lib/ui/widgets/charts/heatmap.dart b/lib/ui/widgets/charts/heatmap.dart
index b4b1af1eadfcf6d96e8cd13982cadf3b48a80244..4d867bd75f5da61933c449beb7d7e41e1d651916 100644
--- a/lib/ui/widgets/charts/heatmap.dart
+++ b/lib/ui/widgets/charts/heatmap.dart
@@ -92,7 +92,7 @@ class ChartHeatmap extends CustomChart {
       sideTitles: SideTitles(
         showTitles: true,
         reservedSize: 40,
-        getTitlesWidget: getVerticalTitlesWidget,
+        getTitlesWidget: getVerticalTitlesWidgetWithValue,
         interval: 1,
       ),
     );
@@ -115,7 +115,7 @@ class ChartHeatmap extends CustomChart {
     );
   }
 
-  Widget getVerticalTitlesWidget(double value, TitleMeta meta) {
+  Widget getVerticalTitlesWidgetWithValue(double value, TitleMeta meta) {
     final String dayShortName = getDayShortName(8 - value.toInt());
 
     return SideTitleWidget(
diff --git a/lib/ui/widgets/charts/timeline_counts.dart b/lib/ui/widgets/charts/timeline_counts.dart
index 84fb8bd233d8a906c86af0e7f6592f48fbd46b72..5d57f50d1091dec2bb994c21e4ce5d171132a9da 100644
--- a/lib/ui/widgets/charts/timeline_counts.dart
+++ b/lib/ui/widgets/charts/timeline_counts.dart
@@ -74,4 +74,8 @@ class ChartTimelineCounts extends CustomBarChart {
 
     return data;
   }
+
+  Widget getVerticalLeftTitlesWidget(double value, TitleMeta meta) {
+    return getVerticalTitlesSpacerWidget(value, meta);
+  }
 }
diff --git a/lib/ui/widgets/charts/timeline_eclecticism.dart b/lib/ui/widgets/charts/timeline_eclecticism.dart
index 565cdad86809433d58440b96b24db8453bb495e3..56f05aab19672a1d2f7fcd5e1b1093a2c8c995cb 100644
--- a/lib/ui/widgets/charts/timeline_eclecticism.dart
+++ b/lib/ui/widgets/charts/timeline_eclecticism.dart
@@ -72,4 +72,8 @@ class ChartTimelineEclecticism extends CustomLineChart {
       ),
     ];
   }
+
+  Widget getVerticalRightTitlesWidget(double value, TitleMeta meta) {
+    return getVerticalTitlesSpacerWidget(value, meta);
+  }
 }
diff --git a/lib/ui/widgets/charts/top_artists_stream.dart b/lib/ui/widgets/charts/top_artists_stream.dart
index 2e43253efacc19730924da2df8823740484522d9..6a01a6268cff268c9651eb123cfcfd341b07afbe 100644
--- a/lib/ui/widgets/charts/top_artists_stream.dart
+++ b/lib/ui/widgets/charts/top_artists_stream.dart
@@ -11,6 +11,7 @@ class ChartTopArtistsStream extends CustomLineChart {
   const ChartTopArtistsStream({super.key, required this.chartData});
 
   final double verticalTicksInterval = 10;
+  final String verticalAxisTitleSuffix = '%';
 
   @override
   Widget build(BuildContext context) {
diff --git a/pubspec.yaml b/pubspec.yaml
index 28be42a78e10cbf602b6cf3de2e599d00b040e8b..1478ee09bd4a55b1e3f0f73e1f821c6f788533fc 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: 'none'
 
-version: 0.0.50+50
+version: 0.0.51+51
 
 environment:
   sdk: '^3.0.0'