Increasing Legibility of Legend Lines in Mathematica

Click For Summary
SUMMARY

This discussion focuses on enhancing the legibility of legend lines in Mathematica plots. Users can utilize the PlotLegends` package to create custom legends with specified line thicknesses. The solution involves using the Graphics function to define the legend manually, allowing for greater control over line attributes. Additionally, users can manipulate the PlotLegend option to adjust the appearance of the legend, including the addition of overlines on symbols.

PREREQUISITES
  • Familiarity with Mathematica syntax and functions
  • Understanding of the PlotLegends` package
  • Basic knowledge of Graphics and Plot functions in Mathematica
  • Experience with styling options in Mathematica, such as Thickness and Style
NEXT STEPS
  • Explore advanced features of the PlotLegends` package in Mathematica
  • Learn how to customize legends using Graphics for more complex visualizations
  • Investigate the use of OverscriptBox and other text formatting options in Mathematica
  • Study the impact of PlotStyle attributes on the overall aesthetics of plots
USEFUL FOR

This discussion is beneficial for Mathematica users, particularly those involved in data visualization, academic researchers preparing plots for presentations, and students working on thesis projects requiring clear graphical representations.

Juliane
Messages
8
Reaction score
0
Hi, can anyone tell me, how to make the lines in a legend more legible (or larger)?

When I am making a legend, the colored lines are too faint, so that I can't see what they refer to.

Thank you,
Juliane
 
Physics news on Phys.org
Can you post a sample of the legend you're trying to make?

Code:
Needs["PlotLegends`"];Plot[{Sin[x], Cos[x]}, {x, 0, 2 Pi}, PlotLegend -> {"sine", "cosine"}]
Gives a plot with a legend built in, but you can also make your own.

Code:
LGN = Show[
  Graphics[Legend[{{Graphics[{Thick, Purple, Line[{{0, 0}, {1, 0}}]}],
       "sin"}, {Graphics[{Thick, Red, Line[{{0, 0}, {1, 0}}]}], 
      "cos"}}]]]

And just do a bunch of editing to make it look how you want.

By default the legend of the plot is the same line as the one drawn in the plot, and I don't see any directives to change that. But making it yourself you can specify the thickness.

Or you can just change the thickness of the lines on the plot itself and that will be reflected in the legend.
 
Last edited:
Here is the plot I want to make:
L[x_] := (1/
2) (BesselI[0, 2 x] + BesselI[2, 2 x])/(BesselI[1,
2 x]) - (1/(2 x))
L0[x_] := (1/
2) (BesselI[0, x] BesselI[1, x] -
BesselI[-1, x] BesselI[2, x])/((BesselI[0, x])^2 -
BesselI[1, x] BesselI[-1, x])
L1[x_] := (1/
2) (BesselI[1, x] BesselI[2, x] -
BesselI[0, x] BesselI[3, x])/((BesselI[1, x])^2 -
BesselI[2, x] BesselI[0, x]) + (1/x)
L2[x_] := (1/
2) (BesselI[2, x] BesselI[3, x] -
BesselI[1, x] BesselI[4, x])/((BesselI[2, x])^2 -
BesselI[3, x] BesselI[1, x]) + (2/x)
Needs["PlotLegends`"]
Plot[Evaluate[{L[x], L0[x], L1[x], L2[x]}], {x, 0, 10},
PlotRange -> {0, 1.4}, Frame -> True,
FrameLabel -> {Style[OverHat[m], 12, FontWeight -> "Bold"],
Style[Subscript[AngleBracket[\[Psi]\[Psi]], \[Nu]], 12,
FontWeight -> "Bold"]},
PlotStyle -> {{Blue, Dashing[0], Thickness[0.0029]}, {Darker[Purple],
Dashing[0.015], Thickness[0.0029]}, {Darker[Red], Dashing[0.01],
Thickness[0.0029]}, {Darker[Green], Dashing[0.03],
Thickness[0.0029]}}, BaseStyle -> {FontSize -> 10},
PlotLegend -> {Style[\[LeftAngleBracket]\[Psi]\[Psi]\
\[RightAngleBracket], 10, FontWeight -> "Bold"],
Style["\[Nu]=0", 10, FontWeight -> "Bold"],
Style["\[Nu]=1", 10, FontWeight -> "Bold"],
Style["\[Nu]=2", 10, FontWeight -> "Bold"]},
LegendPosition -> {0.9, -0.4}, LegendTextSpace -> .8,
LegendShadow -> {.05, -.05}, LegendSize -> 1]

The Legend-lines do not get any larger when I increase the thickness (in what stands above).
Could you also tell me how to make an overline on the first Psi in "AngleBracket[\[Psi]\[Psi]]". No matter what I do, the overline keeps coming on the second Psi.

Thank you so much,
Juliane
 
I'll take a look.

Right off the bat to put the bar over the first psi put quotes around the whole thing, including the brackets : "<sbar s>" and itll put it on the correct one. If you don't it applies order of operations on it and alphabetically I guess the bar comes after non bar.
 
Hi, when I write this: "<sbar s>", mathematica writes "bar" on top of the letter - it doesn't draw a line??
 
I didn't mean it literally. I mean where you have :

PlotLegend -> {Style[\[LeftAngleBracket]\[Psi]\[Psi]\
\[RightAngleBracket], 10, FontWeight -> "Bold"],

USE

PlotLegend -> {Style["\[LeftAngleBracket]\[Psi]\[Psi]\
\[RightAngleBracket]", 10, FontWeight -> "Bold"],

notice the quotes I added.
 
But there is no overbar in what you write??
Sorry I don't understand you.
 
ah sorry.

"\[LeftAngleBracket]\!\(\*OverscriptBox[\"\[Psi]\", \"_\"]\)\[Psi]\
\[RightAngleBracket]"
 
its the quotes that forces it to be read as text rather than input. input will normally be ordered alphabetically.
 
  • #10
Thank you so much.

I'm handing in my master thesis tomorrow - could you please tell me, how to incorporate the legend (LGN=...) in the plot?

Once again, thank you.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 0 ·
Replies
0
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 19 ·
Replies
19
Views
3K