Skip to main content

plotting - Legends in combined Plot and ListPlot


I have a set of data



plotgamma6 = {{0.1, 14/15}, {0.2, 17/20}, {0.3, 11/15}, {0.4, 
43/60}, {0.5, 2/3}, {0.6, 13/20}, {0.7, 7/12}, {0.8, 17/30}, {0.9,
17/30}, {1., 31/60}, {1.1, 31/60}, {1.2, 7/15}, {1.3,
7/15}, {1.4, 9/20}, {1.5, 9/20}, {1.6, 9/20}, {1.7, 13/30}, {1.8,
5/12}, {1.9, 2/5}, {2., 2/5}, {2.1, 2/5}, {2.2, 23/60}, {2.3,
23/60}, {2.4, 11/30}, {2.5, 11/30}, {2.6, 11/30}, {2.7,
7/20}, {2.8, 1/3}, {2.9, 1/3}, {3., 1/3}, {3.1, 1/3}, {3.2,
1/3}, {3.3, 19/60}, {3.4, 19/60}, {3.5, 19/60}, {3.6, 3/10}, {3.7,
3/10}, {3.8, 4/15}, {3.9, 1/4}, {4., 7/30}, {4.1, 13/60}, {4.2,
13/60}, {4.3, 13/60}, {4.4, 13/60}, {4.5, 13/60}, {4.6,

13/60}, {4.7, 13/60}, {4.8, 13/60}, {4.9, 13/60}, {5., 13/60}};
plotgamma10 = {{0.1, 93/100}, {0.2, 89/100}, {0.3, 83/100}, {0.4,
81/100}, {0.5, 37/50}, {0.6, 18/25}, {0.7, 17/25}, {0.8,
16/25}, {0.9, 61/100}, {1., 59/100}, {1.1, 14/25}, {1.2,
14/25}, {1.3, 13/25}, {1.4, 13/25}, {1.5, 49/100}, {1.6,
23/50}, {1.7, 23/50}, {1.8, 9/20}, {1.9, 9/20}, {2.,
43/100}, {2.1, 43/100}, {2.2, 21/50}, {2.3, 41/100}, {2.4,
2/5}, {2.5, 19/50}, {2.6, 37/100}, {2.7, 9/25}, {2.8, 7/20}, {2.9,
17/50}, {3., 33/100}, {3.1, 29/100}, {3.2, 29/100}, {3.3,
29/100}, {3.4, 27/100}, {3.5, 13/50}, {3.6, 6/25}, {3.7,

6/25}, {3.8, 6/25}, {3.9, 6/25}, {4., 6/25}, {4.1, 21/100}, {4.2,
1/5}, {4.3, 1/5}, {4.4, 19/100}, {4.5, 9/50}, {4.6, 9/50}, {4.7,
4/25}, {4.8, 4/25}, {4.9, 4/25}, {5., 4/25}};

which I plot using ListPlot


Needs["PlotLegends`"]
a = ListPlot[{plotgamma6, plotgamma10}, AxesOrigin -> {0, 0},
PlotRange -> {{0, 5}, {0, 1}}, AxesLabel -> {"gamma", "quantity"},
PlotStyle -> PointSize[0.02], PlotLegend -> {"N=6", "N=10",},
LegendPosition -> {1.1, -0.4}, Joined -> {True, True},

PlotMarkers -> Automatic]

Now, I also want to plot a function which needs to be compared with the above data, i.e.,


    f[z_] := Exp[-z/2] BesselI[0, z/2];
b = Plot[-2 f'[z], {z, 0, 5}, PlotLegend -> "Theory",
LegendPosition -> {1.1, -0.4}]

Now, I want to combine these two plots into one, so I use


Show[a,b]


However, this gives a messed up plot! If I remove the plot legends from both the plots, then the combined plot looks reasonable though. But I really want to retain the plot legends. How would you combine these two plots? It doesn't matter to me how you plot these data, i.e., if you use Show or some other function.


Please note that my question is closely related to How to show legend in a combined plot of many lists,


However, that question wasn't answered fully either.


Thanks! dbm368




Comments