"MarkerLayout"
There is an (undocumented) option "MarkerLayout"
to directly control the position of legend markers with respect to labels.
The usage is "MarkerLayout" -> pos
where pos
can be any of symbolic positions "Above"
,"Below"
, "Before"
and "After"
(or Above
, Below
, Before
and After
).
So, you can add the option "MarkerLayout" -> "After"
to get the desired result:
directives = {Directive[Thick, Line, Black], Directive[Thick, Black, Dashed],
Directive[Thick, Red, Line], Directive[Thick, Red, Dashed],
Directive[Thickness[tn], Line, Blue]};
labels = {"Forward Pump", "Backward Pump", Style["Forward Signal", Red],
Style["Backward Signal", Red], Style["ΔT", Blue]};
LineLegend[directives, labels, Spacings -> {.1, 2}, LegendMarkerSize -> 50,
LabelStyle -> Directive[Bold, 15], LegendLayout -> "Row",
"MarkerLayout" -> "After"]

LineLegend[directives, labels, Spacings -> 2,
LegendMarkerSize -> {50, 10}, LabelStyle -> Directive[Bold, 15],
LegendLayout -> {"Row", 1}, "MarkerLayout" -> "Above"]

Use "MarkerLayout" -> "Below"
to get

The same option also works with SwatchLegend
and PointLegend
:
Row[SwatchLegend[{Red, Green, Blue}, {"red", "green", "blue"},
LegendLayout -> "Column", "MarkerLayout" -> #] & /@
{Before, After, Above, Below}, Spacer[20]]

Replace LegendLayout -> "Column"
with LegendLayout -> "Row"
to get

Row[PointLegend[{Red, Green, Blue}, {"red", "green", "blue"},
LegendLayout -> "Column", Method -> "MarkerLayout" -> #] & /@
{Before, After, Above, Below}, Spacer[20]]

Replace LegendLayout -> "Column"
with LegendLayout -> "Row"
to get
