diff --git a/android/gradle.properties b/android/gradle.properties
index f0fcf6cdd8fc72bc76b35e7be0dc622b20c03b0f..408253ceb04c0c7c49b3b9daf597f35b66ce16c1 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.26
-app.versionCode=26
+app.versionName=0.0.27
+app.versionCode=27
diff --git a/assets/translations/en.json b/assets/translations/en.json
index 449c95d379af3bf15d6faa1cd504e748f3df24c0..a2823ebf4473cf48e61d66216dc8b759dee922ed 100644
--- a/assets/translations/en.json
+++ b/assets/translations/en.json
@@ -17,7 +17,8 @@
   "counts_by_day": "Counts by day ({daysCount} days)",
   "counts_by_hour": "Counts by hour ({daysCount} days)",
 
-  "discoveries_title": "Discoveries ({daysCount} days)",
+  "discoveries_artists_title": "Artists discoveries ({daysCount} days)",
+  "discoveries_tracks_title": "Tracks discoveries ({daysCount} days)",
 
   "top_artists_title": "Top artists ({daysCount} days)",
 
diff --git a/assets/translations/fr.json b/assets/translations/fr.json
index 1b19c8a7d1b7905c8d72531914b57e00d49604bc..67d019d1490f2a0f5793ee643a021a717b6a1a08 100644
--- a/assets/translations/fr.json
+++ b/assets/translations/fr.json
@@ -17,7 +17,8 @@
   "counts_by_day": "Écoutes par jour ({daysCount} jours)",
   "counts_by_hour": "Écoutes par heure ({daysCount} jours)",
 
-  "discoveries_title": "Découvertes ({daysCount} jours)",
+  "discoveries_artists_title": "Artistes découverts ({daysCount} jours)",
+  "discoveries_tracks_title": "Morceaux découverts ({daysCount} jours)",
 
   "top_artists_title": "Top artistes ({daysCount} jours)",
 
diff --git a/fastlane/metadata/android/en-US/changelogs/27.txt b/fastlane/metadata/android/en-US/changelogs/27.txt
new file mode 100644
index 0000000000000000000000000000000000000000..eeb190dd71a45fad9807f33944949d2f83dc4b57
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/27.txt
@@ -0,0 +1 @@
+Improve "discoveries" chart.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/27.txt b/fastlane/metadata/android/fr-FR/changelogs/27.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cb3be4c1849d6d6aa69a680b85f1b97d536b4e44
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/27.txt
@@ -0,0 +1 @@
+Amélioration du graphique des découvertes.
diff --git a/lib/ui/widgets/main_screen/discoveries_card.dart b/lib/ui/widgets/main_screen/discoveries_card.dart
index 838d379d0c3ec7ed3beb1962c4499df164c93066..57f0d046398e94079a882f691c8edc3c9b0a27c7 100644
--- a/lib/ui/widgets/main_screen/discoveries_card.dart
+++ b/lib/ui/widgets/main_screen/discoveries_card.dart
@@ -5,7 +5,8 @@ import 'package:flutter/material.dart';
 import '../../../models/discoveries.dart';
 import '../../../network/scrobbles_api.dart';
 import '../../../ui/widgets/error.dart';
-import '../../../ui/widgets/main_screen/discoveries_content.dart';
+import 'discoveries_content_artists.dart';
+import 'discoveries_content_tracks.dart';
 
 class ChartDiscoveriesCard extends StatelessWidget {
   const ChartDiscoveriesCard({super.key});
@@ -33,12 +34,24 @@ class ChartDiscoveriesCard extends StatelessWidget {
           ),
           child: Padding(
             padding: const EdgeInsets.all(8.0),
-            child: ChartDiscoveriesCardContent(
-              daysCount: daysCount,
-              chartData: snapshot.hasData
-                  ? DiscoveriesData.fromJson(jsonDecode(snapshot.data.toString()))
-                  : DiscoveriesData.createEmpty(),
-              isLoading: !snapshot.hasData,
+            child: Column(
+              children: [
+                ChartDiscoveriesArtistsCardContent(
+                  daysCount: daysCount,
+                  chartData: snapshot.hasData
+                      ? DiscoveriesData.fromJson(jsonDecode(snapshot.data.toString()))
+                      : DiscoveriesData.createEmpty(),
+                  isLoading: !snapshot.hasData,
+                ),
+                const SizedBox(height: 8),
+                ChartDiscoveriesTracksCardContent(
+                  daysCount: daysCount,
+                  chartData: snapshot.hasData
+                      ? DiscoveriesData.fromJson(jsonDecode(snapshot.data.toString()))
+                      : DiscoveriesData.createEmpty(),
+                  isLoading: !snapshot.hasData,
+                ),
+              ],
             ),
           ),
         );
diff --git a/lib/ui/widgets/main_screen/discoveries_chart.dart b/lib/ui/widgets/main_screen/discoveries_chart_artists.dart
similarity index 79%
rename from lib/ui/widgets/main_screen/discoveries_chart.dart
rename to lib/ui/widgets/main_screen/discoveries_chart_artists.dart
index 4e5ed7d2bddf8ac374efc4adb2fd7fe4f9612d76..eb76c31397de32750c029a150efef7cb24e36e30 100644
--- a/lib/ui/widgets/main_screen/discoveries_chart.dart
+++ b/lib/ui/widgets/main_screen/discoveries_chart_artists.dart
@@ -6,10 +6,10 @@ import '../../../models/discoveries.dart';
 import '../../../utils/color_extensions.dart';
 import '../../../ui/widgets/charts/custom_bar_chart.dart';
 
-class ChartDiscoveries extends CustomBarChart {
+class ChartDiscoveriesArtists extends CustomBarChart {
   final DiscoveriesData chartData;
 
-  ChartDiscoveries({super.key, required this.chartData});
+  ChartDiscoveriesArtists({super.key, required this.chartData});
 
   @override
   Widget build(BuildContext context) {
@@ -31,14 +31,10 @@ class ChartDiscoveries extends CustomBarChart {
       DiscoveriesDataValue? value = this.chartData.data[key];
       if (value != null) {
         double newArtistsCount = value.newArtistsCount.toDouble();
-        double newTracksCount = value.newTracksCount.toDouble();
 
         if (newArtistsCount > maxValue) {
           maxValue = newArtistsCount;
         }
-        if (newTracksCount > maxValue) {
-          maxValue = newTracksCount;
-        }
       }
     });
 
@@ -49,7 +45,6 @@ class ChartDiscoveries extends CustomBarChart {
     List<BarChartGroupData> data = [];
 
     final newArtistsBarColor = AppColors.contentColorGreen.darken(20);
-    final newTracksBarColor = AppColors.contentColorBlue.darken(20);
 
     this.chartData.data.keys.forEach((key) {
       DiscoveriesDataValue? value = this.chartData.data[key];
@@ -60,13 +55,11 @@ class ChartDiscoveries extends CustomBarChart {
           x: date,
           values: [
             value.newArtistsCount.toDouble(),
-            value.newTracksCount.toDouble(),
           ],
           barColors: [
             newArtistsBarColor,
-            newTracksBarColor,
           ],
-          barWidth: barWidth / 2.5,
+          barWidth: barWidth,
         ));
       }
     });
diff --git a/lib/ui/widgets/main_screen/discoveries_chart_tracks.dart b/lib/ui/widgets/main_screen/discoveries_chart_tracks.dart
new file mode 100644
index 0000000000000000000000000000000000000000..622911d660fb4632236f1e096bee45a111cdf898
--- /dev/null
+++ b/lib/ui/widgets/main_screen/discoveries_chart_tracks.dart
@@ -0,0 +1,69 @@
+import 'package:flutter/material.dart';
+import 'package:fl_chart/fl_chart.dart';
+
+import '../../../config/app_colors.dart';
+import '../../../models/discoveries.dart';
+import '../../../utils/color_extensions.dart';
+import '../../../ui/widgets/charts/custom_bar_chart.dart';
+
+class ChartDiscoveriesTracks extends CustomBarChart {
+  final DiscoveriesData chartData;
+
+  ChartDiscoveriesTracks({super.key, required this.chartData});
+
+  @override
+  Widget build(BuildContext context) {
+    return Container(
+      height: this.chartHeight,
+      child: LayoutBuilder(builder: (context, constraints) {
+        return getBarChart(
+          barWidth: this.getBarWidth(constraints.maxWidth, this.chartData.data.keys.length),
+          backgroundColor: Theme.of(context).colorScheme.onSurface,
+        );
+      }),
+    );
+  }
+
+  double getMaxCountsValue() {
+    double maxValue = 0;
+
+    this.chartData.data.keys.forEach((key) {
+      DiscoveriesDataValue? value = this.chartData.data[key];
+      if (value != null) {
+        double newTracksCount = value.newTracksCount.toDouble();
+
+        if (newTracksCount > maxValue) {
+          maxValue = newTracksCount;
+        }
+      }
+    });
+
+    return maxValue;
+  }
+
+  List<BarChartGroupData> getDataCounts(double barWidth) {
+    List<BarChartGroupData> data = [];
+
+    final newTracksBarColor = AppColors.contentColorBlue.darken(20);
+
+    this.chartData.data.keys.forEach((key) {
+      DiscoveriesDataValue? value = this.chartData.data[key];
+      if (value != null) {
+        final int date = DateTime.parse(key).millisecondsSinceEpoch;
+
+        data.add(this.getBarItem(
+          x: date,
+          values: [
+            value.newTracksCount.toDouble(),
+          ],
+          barColors: [
+            newTracksBarColor,
+          ],
+          barWidth: barWidth,
+        ));
+      }
+    });
+
+    return data;
+  }
+}
diff --git a/lib/ui/widgets/main_screen/discoveries_content_artists.dart b/lib/ui/widgets/main_screen/discoveries_content_artists.dart
new file mode 100644
index 0000000000000000000000000000000000000000..b608e9dd2dffc1ecf6693f5803d164d40b20f2d9
--- /dev/null
+++ b/lib/ui/widgets/main_screen/discoveries_content_artists.dart
@@ -0,0 +1,43 @@
+import 'dart:convert';
+
+import 'package:easy_localization/easy_localization.dart';
+import 'package:flutter/material.dart';
+
+import '../../../models/discoveries.dart';
+import 'discoveries_chart_artists.dart';
+
+class ChartDiscoveriesArtistsCardContent extends StatelessWidget {
+  final int daysCount;
+  final DiscoveriesData chartData;
+  final bool isLoading;
+
+  const ChartDiscoveriesArtistsCardContent(
+      {super.key, required this.daysCount, required this.chartData, required this.isLoading});
+
+  @override
+  Widget build(BuildContext context) {
+    final TextTheme textTheme = Theme.of(context).primaryTextTheme;
+    final String placeholder = '⏳';
+
+    return Column(
+      mainAxisSize: MainAxisSize.min,
+      crossAxisAlignment: CrossAxisAlignment.start,
+      children: <Widget>[
+        Text(
+          'discoveries_artists_title',
+          style: textTheme.titleLarge!.apply(fontWeightDelta: 2),
+        ).tr(
+          namedArgs: {
+            'daysCount': this.daysCount.toString(),
+          },
+        ),
+        const SizedBox(height: 8),
+        this.isLoading
+            ? Text(placeholder)
+            : ChartDiscoveriesArtists(
+                chartData: DiscoveriesData.fromJson(jsonDecode(this.chartData.toString())),
+              ),
+      ],
+    );
+  }
+}
diff --git a/lib/ui/widgets/main_screen/discoveries_content.dart b/lib/ui/widgets/main_screen/discoveries_content_tracks.dart
similarity index 82%
rename from lib/ui/widgets/main_screen/discoveries_content.dart
rename to lib/ui/widgets/main_screen/discoveries_content_tracks.dart
index 5dccaf0d4ebb393ce01ead1e19c80a79513e4931..9ca8ff1f5137065662141cd8f479271eba929330 100644
--- a/lib/ui/widgets/main_screen/discoveries_content.dart
+++ b/lib/ui/widgets/main_screen/discoveries_content_tracks.dart
@@ -4,14 +4,14 @@ import 'package:easy_localization/easy_localization.dart';
 import 'package:flutter/material.dart';
 
 import '../../../models/discoveries.dart';
-import '../../../ui/widgets/main_screen/discoveries_chart.dart';
+import 'discoveries_chart_tracks.dart';
 
-class ChartDiscoveriesCardContent extends StatelessWidget {
+class ChartDiscoveriesTracksCardContent extends StatelessWidget {
   final int daysCount;
   final DiscoveriesData chartData;
   final bool isLoading;
 
-  const ChartDiscoveriesCardContent(
+  const ChartDiscoveriesTracksCardContent(
       {super.key, required this.daysCount, required this.chartData, required this.isLoading});
 
   @override
@@ -24,7 +24,7 @@ class ChartDiscoveriesCardContent extends StatelessWidget {
       crossAxisAlignment: CrossAxisAlignment.start,
       children: <Widget>[
         Text(
-          'discoveries_title',
+          'discoveries_tracks_title',
           style: textTheme.titleLarge!.apply(fontWeightDelta: 2),
         ).tr(
           namedArgs: {
@@ -34,7 +34,7 @@ class ChartDiscoveriesCardContent extends StatelessWidget {
         const SizedBox(height: 8),
         this.isLoading
             ? Text(placeholder)
-            : ChartDiscoveries(
+            : ChartDiscoveriesTracks(
                 chartData: DiscoveriesData.fromJson(jsonDecode(this.chartData.toString())),
               ),
       ],
diff --git a/pubspec.yaml b/pubspec.yaml
index c6d571c0e88084b66cd5d4a18acc2ea030ef9fb7..ad3eda281acecdf67b7bb555ab1604836e9c0f78 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: 'none'
 
-version: 0.0.26+26
+version: 0.0.27+27
 
 environment:
   sdk: '^3.0.0'