2
$\begingroup$

I constructed a plot with extra legends generated using dashed function but customarily defined legend doesn't look like plot:

Y1 = Sin[x]; Y2 = Cos[x]; Y3 = Sin[2*x] + Sin[5*x]; Y4 = 
 Sin[7*x]; Y5 = Sin[9*x];
 Plot[{Y1, Y2, Y3, Y4, Y5}, {x, 0, 15}, Frame -> True, 
 PlotRange -> {{0, 15}, All}, Axes -> {True, True}, 
 PlotLegends -> {Style["Y1", Plain, FontFamily -> Helvetica, 22], 
 Style["Y2", Plain, FontFamily -> Helvetica, 22], 
 Style["Y3", Plain, FontFamily -> Helvetica, 22], 
 Style["Y4", Plain, FontFamily -> Helvetica, 22], 
 Style["Y5", Plain, FontFamily -> Helvetica, 22]}, 
 AxesOrigin -> {0, -1}, AxesStyle -> Dashed, 
 FrameLabel -> {"r [\[Mu]m]", 
 "T [\!\(\*SuperscriptBox[\(\[InvisiblePrefixScriptBase]\), \(0\)]\
 \)C]"}, BaseStyle -> {FontSize -> 22, FontWeight -> Plain, 
 FontFamily -> Helvetica}, 
 PlotStyle -> {Directive[Orange, Thick], 
 Directive[Dashed, Red, Thick], 
 Directive[Dashing[{0.025, 0.01, 0.025, 0.01}], Purple, Thick], 
 Directive[Black, 
 Dashing[{0.025, 0.005, 0.025, 0.005, 0.005, 0.005, 0.005, 
 0.005}], Thick], 
 Directive[Blue, Dashing[{0.025, 0.01, 0.005, 0.01}], Thick]}, 
 ImageSize -> 500]

enter image description here Note legend 3,4,5 are not like the plot or defining parameters.

$\endgroup$

2 Answers 2

4
$\begingroup$

I think that the lengths of the LegendMarkers just need to be increased.

Y1 = Sin[x]; Y2 = Cos[x]; Y3 = Sin[2*x] + Sin[5*x]; Y4 = Sin[7*x]; Y5 = Sin[9*x];
Plot[{Y1, Y2, Y3, Y4, Y5}, {x, 0, 15}, Frame -> True, 
 PlotRange -> {{0, 15}, All}, Axes -> {True, True},
 BaseStyle -> {FontSize -> 22, FontWeight -> Plain, FontFamily -> Helvetica},
 PlotLegends -> LineLegend[(Style[#, 22] &) /@ {"Y1", "Y2", "Y3", "Y4", "Y5"},
   LegendMarkerSize -> 75],
 AxesOrigin -> {0, -1}, AxesStyle -> Dashed,
 FrameLabel -> {"r [μm]", "T \!\(\*SuperscriptBox[\([\), \(o\)]\)C]"},
 PlotStyle -> {{Orange, Thick},
   {Dashed, Red, Thick},
   {Dashing[{0.025, 0.01, 0.025, 0.01}], Purple, Thick},
   {Black, Dashing[{0.025, 0.005, 0.025, 0.005, 0.005, 0.005, 0.005, 0.005}], Thick},
   {Blue, Dashing[{0.025, 0.01, 0.005, 0.01}], Thick}}, 
 ImageSize -> 500]

Plot with larger legend marker lengths

Update

Given your comment below about being good for a research article and if you really had to stick to a single figure, I would just use solid lines of varying thickness and color contrasts. Here's an example (and certainly not the best choice):

Plot[{Y1, Y2, Y3, Y4, Y5}, {x, 0, 15}, Frame -> True, 
 PlotRange -> {{0, 15}, All}, Axes -> {True, True}, 
 BaseStyle -> {FontSize -> 22, FontWeight -> Plain, FontFamily -> Helvetica}, 
 PlotLegends -> (Style[#, 22] &) /@ {"Y1", "Y2", "Y3", "Y4", "Y5"}, 
 AxesOrigin -> {0, -1}, AxesStyle -> Dashed, 
 FrameLabel -> {"r [\[Mu]m]", "T \!\(\*SuperscriptBox[\([\), \(o\)]\)C]"}, 
 PlotStyle -> {{Green, Thickness[0.01]}, {Blue, Thickness[0.01]}, 
   {Purple, Thick}, {Red, Thick}, {Cyan, Thick}}, 
 ImageSize -> 500]

Figure with solid lines

$\endgroup$
3
  • $\begingroup$ That cool JimB. I have a little more concern is this plot is good for a research article or u think I can improve it more?. $\endgroup$ Commented Sep 16, 2018 at 4:06
  • $\begingroup$ It might very well be because I don't know the subject area but I find the figure to be essentially unintelligible. Especially the curves for Y4 and Y5. I don't think an improvement in resolution would help. Would it make sense to have (at least) two figures? Or maybe having Y4 and Y5 having very different patterns (like solid and dotted) as Y1, Y2, and Y3 are much more distinguishable by their shapes. $\endgroup$
    – JimB
    Commented Sep 16, 2018 at 5:42
  • $\begingroup$ Thanks JimB for the suggestion. The think is I want to use different plot-marker apart from just color and widths but having no idea to how include different type of marker like *,# ... in PlotStyle function. It seem I can only include solid, Dashed and Dotted which I already used. $\endgroup$ Commented Sep 16, 2018 at 6:30
4
$\begingroup$

You may be over specifying the appearance of the plot and legend.

There was mention of needing styling for publication. I recommend the "Monochrome" PlotTheme as each style will be distinguished when printing monochrome. This with the above suggestions gives

Plot[{Y1, Y2, Y3, Y4, Y5}, {x, 0, 15},
 Frame -> True,
 PlotLegends -> LineLegend[Automatic, StringTemplate["Y``"] /@ Range@5,
   LabelStyle -> {FontSize -> 22, FontFamily -> "Helvetica"}],
 AxesOrigin -> {0, -1},
 AxesStyle -> Dashed,
 FrameLabel -> {"r [\[Mu]m]", 
   "T [\!\(\*SuperscriptBox[\(\[InvisiblePrefixScriptBase]\), \(0\)] \)C]"}, 
 BaseStyle -> {FontSize -> 22, FontFamily -> "Helvetica"},
 PlotTheme -> "Monochrome",
 ImageSize -> 500]

Mathematica graphics

Colour can be added to this theme by specifying a colour-only scheme after "Monochrome" in PlotTheme.

Plot[{Y1, Y2, Y3, Y4, Y5}, {x, 0, 15},
 Frame -> True,
 PlotLegends -> LineLegend[Automatic, StringTemplate["Y``"] /@ Range@5,
   LabelStyle -> {FontSize -> 22, FontFamily -> "Helvetica"}],
 AxesOrigin -> {0, -1},
 AxesStyle -> Dashed,
 FrameLabel -> {"r [\[Mu]m]", 
   "T [\!\(\*SuperscriptBox[\(\[InvisiblePrefixScriptBase]\), \(0\)] \)C]"}, 
 BaseStyle -> {FontSize -> 22, FontFamily -> "Helvetica"},
 PlotTheme -> {"Monochrome", "BoldColor"},
 ImageSize -> 500]

Mathematica graphics

Hope this helps.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.