|
|
Re: Legends for Data Plots: an addition to the previous post
Posted:
Mar 2, 2013 2:34 AM
|
|
....here all works, except the Legends entry for the data is a line and not a Point...
... there is no simple way to make a common frame. Or at least I do not see such a way...
Hi, Kevin,
This is an addition to my earlier answer. Here is a way to have a common frame or panel around the two legends: one of which is PointLegend and the next is the LineLegend:
Here it is with a Panel:
lst = Transpose[{RandomReal[{0, 3}, 30], RandomReal[{-0.03, 0.03}, 30]}] /. {x_, y_} -> {x, x*Exp[-x] + y}; ft = FindFit[lst, a + b*x*Exp[-c*x], {a, b, c}, x];
Show[{ ListPlot[lst, PlotRange -> {{0, 3.5}, Automatic} ], Plot[a + b*x*Exp[-c*x] /. ft, {x, 0, 3}, PlotRange -> {{0, 3.5}, Automatic}, PlotStyle -> Red] },
(* The legends are in the Epilog start here *) Epilog -> Inset[Panel[Column[{ PointLegend[{Blue}, {" Data"}], LineLegend[{Red}, \ {"f(x)=\!\(\*SuperscriptBox[\(x\[ExponentialE]\), \(-x\)]\)"}] }]], Scaled[{0.8, 0.85}]] (* End of the Legends*)
]
Here it is with the Frame:
lst = Transpose[{RandomReal[{0, 3}, 30], RandomReal[{-0.03, 0.03}, 30]}] /. {x_, y_} -> {x, x*Exp[-x] + y}; ft = FindFit[lst, a + b*x*Exp[-c*x], {a, b, c}, x];
Show[{ ListPlot[lst, PlotRange -> {{0, 3.5}, Automatic} ], Plot[a + b*x*Exp[-c*x] /. ft, {x, 0, 3}, PlotRange -> {{0, 3.5}, Automatic}, PlotStyle -> Red] },
(* The legends are in the Epilog start here *) Epilog -> Inset[Framed[Column[{ PointLegend[{Blue}, {" Data"}], LineLegend[{Red}, \ {"f(x)=\!\(\*SuperscriptBox[\(x\[ExponentialE]\), \(-x\)]\)"}] }], RoundingRadius -> 5], Scaled[{0.8, 0.85}]] (* End of the Legends *)
]
Have fun.
Alexei BOULBITCH, Dr., habil. IEE S.A. ZAE Weiergewan, 11, rue Edmond Reuter, L-5326 Contern, LUXEMBOURG
Office phone : +352-2454-2566 Office fax: +352-2454-3566 mobile phone: +49 151 52 40 66 44
e-mail: alexei.boulbitch@iee.lu
|
|