Comment mettre un titre sur PlotLegends?

Sep 12 2020

Je veux mettre un titre à l'intrigue que j'utilise. J'obtiens une solution ici qui dit à utiliser PlotLegends -> SwatchLegend[{0, 3.3, 6.7, 10, 13, 17, 20}, LegendLabel -> "mu"]. Mais je veux aussi placer les légendes là où je veux utiliser PlotLegends -> Placed[Range[1, 6, 1], {0.2, 0.3}].

Comment puis-je faire les deux?

Edit: Comme la réponse a été donnée, le wrapping fonctionne, mais il y a toujours un problème, c'est à dire que mon intrigue ressemble à ceci:

Où je veux nommer les légendes comme "H". Mais quand je fais ce truc Swatchlegend, ça devient comme ça:

Je veux garder les marqueurs et les couleurs identiques. Que devrais-je faire?

Réponses

4 TimLaska Sep 12 2020 at 02:01

Vous recherchez probablement PointLegend, mais vous devriez fournir plus de détails afin que d'autres puissent reproduire vos résultats.

mu = {0, 3.3, 6.7, 10, 13, 17, 20};
pl = PointLegend[mu, LegendLabel -> "mu", LegendFunction -> "Frame", 
   LegendLayout -> "Row", LegendMarkers -> Automatic];
fns = Table[n^(1/p), {p, 7}, {n, 10}];
ListLinePlot[fns, PlotMarkers -> Automatic, 
 PlotLegends -> Placed[pl, Top]]

3 tad Sep 12 2020 at 02:29

Vous pouvez envelopper Placed autour de la légende. Voici un exemple modifié à partir de la documentation SwatchLegend:

Plot[{Sin[x], Cos[x]}, {x, 0, 5}, 
   PlotLegends -> Placed[SwatchLegend[{"first", "second"}, 
LegendLabel -> "legend title"], {0.2, 0.3}]]

3 kglr Sep 12 2020 at 08:16

Vous pouvez utiliser PlotLegends - > Placed[labels, Top, Labeled[#, legendlabel, Top] &].

En utilisant l'exemple d'entrée de la réponse de Tim Laska:

mu = {0, 3.3, 6.7, 10, 13, 17, 20};
fns = Table[n^(1/p), {p, 7}, {n, 10}];

ListLinePlot[fns, PlotMarkers -> Automatic, 
 PlotLegends -> Placed[mu, Top, Labeled[#, Style["mu", 16], Top] &]]

Vous pouvez encore embellir l'apparence en utilisant le troisième argument de Placed:

ListLinePlot[fns, PlotMarkers -> Automatic, 
 PlotLegends -> Placed[mu, Top, Panel @ Labeled[#, Style["mu", 16], Top] &]]

ListLinePlot[fns, PlotMarkers -> Automatic, 
 PlotLegends ->  Placed[mu, Top, 
   Framed[#, FrameStyle -> Directive[Thin, Gray], 
       RoundingRadius -> 5, ImageMargins -> 5] & @
     Labeled[#, Style[Row[{Spacer[5], "mu"}], 24, "Section"], {{Top, Left}}] &]]