diff --git a/src/View/Geometry/PlotAC.py b/src/View/Geometry/PlotAC.py
index 1d7bf8d84fde42d1af4d90f619501b949b261d42..7cc7518433041bb75ec8d130ed41b7f6ae2d9efa 100644
--- a/src/View/Geometry/PlotAC.py
+++ b/src/View/Geometry/PlotAC.py
@@ -72,11 +72,11 @@ class PlotAC(PamhyrPlot):
 
         self.canvas.axes.set_xlabel(
             _translate("MainWindow_reach", "Transverse abscissa (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("MainWindow_reach", "Height (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.figure.tight_layout()
 
@@ -176,11 +176,11 @@ class PlotAC(PamhyrPlot):
         self.canvas.axes.grid(color='grey', linestyle='--', linewidth=0.5)
         self.canvas.axes.set_xlabel(
             _translate("MainWindow_reach", "Abscisse en travers (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("MainWindow_reach", "Cote (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.figure.tight_layout()
 
diff --git a/src/View/Geometry/PlotKPZ.py b/src/View/Geometry/PlotKPZ.py
index 41b08a8f074fa05888db408dc32bf1d0b9e6d408..79fbfe058f65f5350df34bd6964b2b85598059b1 100644
--- a/src/View/Geometry/PlotKPZ.py
+++ b/src/View/Geometry/PlotKPZ.py
@@ -64,11 +64,11 @@ class PlotKPZ(PamhyrPlot):
 
         self.canvas.axes.set_xlabel(
             _translate("MainWindow_reach", "Kp (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("MainWindow_reach", "Height (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         kp = self.data.get_kp()
diff --git a/src/View/Geometry/PlotXY.py b/src/View/Geometry/PlotXY.py
index a851cc82c999dfc54004d343378b95a202088658..fcd55ecce7e98d2ab7352c76a1d2c906dd26299b 100644
--- a/src/View/Geometry/PlotXY.py
+++ b/src/View/Geometry/PlotXY.py
@@ -65,11 +65,11 @@ class PlotXY(PamhyrPlot):
         # Axes
         self.canvas.axes.set_xlabel(
             _translate("Geometry", "X (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("Geometry", "Y (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.axis("equal")
 
diff --git a/src/View/Results/CustomPlot/Plot.py b/src/View/Results/CustomPlot/Plot.py
index 4712c45bb97f814f6520df95a1c107d103dd57c7..9733448fd5f7775a5850db379d5d45186ec113cd 100644
--- a/src/View/Results/CustomPlot/Plot.py
+++ b/src/View/Results/CustomPlot/Plot.py
@@ -86,16 +86,19 @@ class CustomPlot(PamhyrPlot):
         if "0-meter" in self._y_axes and "1-m3s" in self._y_axes:
             m3s_axes = self._axes["1-m3s"]
 
+
+        lines = {}
         if "elevation" in self._y:
             meter_axes.set_ylim(
                 bottom=min(0, min(z_min)),
                 top=max(z_min) + 1
             )
 
-            meter_axes.plot(
+            line = meter_axes.plot(
                 kp, z_min,
-                color='grey', lw=1.
+                color='grey', lw=1.,
             )
+            lines["elevation"] = line
 
         if "water_elevation" in self._y:
             # Water elevation
@@ -111,10 +114,11 @@ class CustomPlot(PamhyrPlot):
                 top=max(water_z) + 1
             )
 
-            meter_axes.plot(
+            line = meter_axes.plot(
                 kp, water_z, lw=1.,
-                color='b',
+                color='blue',
             )
+            lines["water_elevation"] = line
 
             if "elevation" in self._y:
                 meter_axes.fill_between(
@@ -135,10 +139,20 @@ class CustomPlot(PamhyrPlot):
                 top=max(q) + 1
             )
 
-            m3s_axes.plot(
+            line = m3s_axes.plot(
                 kp, q, lw=1.,
                 color='r',
             )
+            lines["discharge"] = line
+
+        # Legend
+        lns = reduce(
+            lambda acc, l: acc + l,
+            map(lambda l: lines[l], lines),
+            []
+        )
+        labs = list(map(lambda l: self._trad[l], lines))
+        self.canvas.axes.legend(lns, labs, loc="lower left")
 
     def _customize_x_axes_time(self, ts, mode="time"):
         # Custom time display
@@ -198,6 +212,7 @@ class CustomPlot(PamhyrPlot):
         )
 
         x = ts
+        lines = {}
         if "elevation" in self._y:
             # Z min is constant in time
             z_min = profile.geometry.z_min()
@@ -208,10 +223,11 @@ class CustomPlot(PamhyrPlot):
                 )
             )
 
-            meter_axes.plot(
+            line = meter_axes.plot(
                 ts, ts_z_min,
                 color='grey', lw=1.
             )
+            lines["elevation"] = line
 
         if "water_elevation" in self._y:
             # Water elevation
@@ -222,10 +238,11 @@ class CustomPlot(PamhyrPlot):
                 top=max(z) + 1
             )
 
-            meter_axes.plot(
+            line = meter_axes.plot(
                 ts, z, lw=1.,
                 color='b',
             )
+            lines["water_elevation"] = line
 
             if "elevation" in self._y:
                 z_min = profile.geometry.z_min()
@@ -249,13 +266,24 @@ class CustomPlot(PamhyrPlot):
                 top=max(q) + 1
             )
 
-            m3s_axes.plot(
+            line = m3s_axes.plot(
                 ts, q, lw=1.,
                 color='r',
             )
+            lines["discharge"] = line
+
 
         self._customize_x_axes_time(ts)
 
+        # Legend
+        lns = reduce(
+            lambda acc, l: acc + l,
+            map(lambda l: lines[l], lines),
+            []
+        )
+        labs = list(map(lambda l: self._trad[l], lines))
+        self.canvas.axes.legend(lns, labs, loc="lower left")
+
     @timer
     def draw(self):
         self.canvas.axes.cla()
@@ -266,12 +294,12 @@ class CustomPlot(PamhyrPlot):
 
         self.canvas.axes.set_xlabel(
             self._trad[self._x],
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         self.canvas.axes.set_ylabel(
             self._trad[self._y_axes[0]],
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         for axes in self._y_axes[1:]:
@@ -281,7 +309,7 @@ class CustomPlot(PamhyrPlot):
             ax_new = self.canvas.axes.twinx()
             ax_new.set_ylabel(
                 self._trad[axes],
-                color='green', fontsize=12
+                color='green', fontsize=10
             )
             self._axes[axes] = ax_new
 
diff --git a/src/View/Results/PlotH.py b/src/View/Results/PlotH.py
index dd5a332b9cadf377f73cd5a25625735b760a4b06..2af2ea41338943ebed9d65cfedd8ac5a55a2e046 100644
--- a/src/View/Results/PlotH.py
+++ b/src/View/Results/PlotH.py
@@ -77,11 +77,11 @@ class PlotH(PamhyrPlot):
         # Axes
         self.canvas.axes.set_xlabel(
             _translate("Results", "Time (s)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("Results", "Discharge (m³/s)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         ts = list(self.results.get("timestamps"))
diff --git a/src/View/Results/PlotSedProfile.py b/src/View/Results/PlotSedProfile.py
index d16fb0b87a039ec43b9235874e55866e784f1ff8..013480d93238e8edd9b0d7c0d41ff1e2298ccb60 100644
--- a/src/View/Results/PlotSedProfile.py
+++ b/src/View/Results/PlotSedProfile.py
@@ -122,11 +122,11 @@ class PlotSedProfile(PamhyrPlot):
 
         self.canvas.axes.set_xlabel(
             _translate("MainWindow_reach", "X (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("MainWindow_reach", "Height (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         x = profile.geometry.get_station()
diff --git a/src/View/Results/PlotSedReach.py b/src/View/Results/PlotSedReach.py
index 5cdc4ad7b0221dc4e4e8c51df93d02351e5e2783..9e49c0765862aab821b7a993607110134b112039 100644
--- a/src/View/Results/PlotSedReach.py
+++ b/src/View/Results/PlotSedReach.py
@@ -203,11 +203,11 @@ class PlotSedReach(PamhyrPlot):
 
         self.canvas.axes.set_xlabel(
             _translate("MainWindow_reach", "Kp (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("MainWindow_reach", "Height (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         kp = reach.geometry.get_kp()
diff --git a/src/View/Results/PlotXY.py b/src/View/Results/PlotXY.py
index 5a513322f0f8b23bcb2863ac35fbbb12344aab01..384e28135f5954816e5ff30cd139a18e641e1050 100644
--- a/src/View/Results/PlotXY.py
+++ b/src/View/Results/PlotXY.py
@@ -78,11 +78,11 @@ class PlotXY(PamhyrPlot):
         # Axes
         self.canvas.axes.set_xlabel(
             _translate("Results", "X (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("Results", "Y (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.axis("equal")
 
diff --git a/src/View/SedimentLayers/Edit/Plot.py b/src/View/SedimentLayers/Edit/Plot.py
index 87cfe6448bf58a69109a5f753d31449ad97e6e2a..69e58f835080ddc69468d50d5c1baa7af5472a25 100644
--- a/src/View/SedimentLayers/Edit/Plot.py
+++ b/src/View/SedimentLayers/Edit/Plot.py
@@ -35,7 +35,7 @@ class Plot(PamhyrPlot):
         self.canvas.axes.axes.get_xaxis().set_visible(False)
         self.canvas.axes.set_ylabel(
             self._trad["height"],
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         if self.data is None:
diff --git a/src/View/SedimentLayers/Reach/Plot.py b/src/View/SedimentLayers/Reach/Plot.py
index 3664081cfb22f997ed4e0492c14a8d0d379406f0..1bea651fea5e2c930d9c90d70cf5be316115ba13 100644
--- a/src/View/SedimentLayers/Reach/Plot.py
+++ b/src/View/SedimentLayers/Reach/Plot.py
@@ -46,11 +46,11 @@ class Plot(PamhyrPlot):
 
         self.canvas.axes.set_xlabel(
             self._trad["kp"],
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             self._trad["height"],
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         kp = self.data.get_kp()
diff --git a/src/View/SedimentLayers/Reach/Profile/Plot.py b/src/View/SedimentLayers/Reach/Profile/Plot.py
index 38adb990e0ddaa596abb1afb2afc4afcf33d26e1..5000ca9bb2cf697b0b97d448003b98ac2136d3b1 100644
--- a/src/View/SedimentLayers/Reach/Profile/Plot.py
+++ b/src/View/SedimentLayers/Reach/Profile/Plot.py
@@ -46,11 +46,11 @@ class Plot(PamhyrPlot):
 
         self.canvas.axes.set_xlabel(
             _translate("MainWindow_reach", "X (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
         self.canvas.axes.set_ylabel(
             _translate("MainWindow_reach", "Height (m)"),
-            color='green', fontsize=12
+            color='green', fontsize=10
         )
 
         x = self.data.get_station()