This is one of those "I'm not even sure how to ask this" kind of questions. You could be asking any (or all) of the following questions. ## How do I add a legend to appear on a `ListContourPlot`? All you need to do is add `PlotLegends->Automatic` to your `ListContourPlot`: a1=ListContourPlot[data, Contours->25,Axes->False, PlotRangePadding->0, Frame->False,ColorFunction->"DarkRainbow", PlotRange->{0.001,100}, PlotLegends->Automatic]; <img src="https://i.sstatic.net/YlOto.jpg" width="400" height="400"> The legend will be drawn on the same 3D surface as its associated plot. ## How do I make a `BarLegend` object into a `Graphics` object? It already is a `Graphics` object in `StandardForm`. From the docs: > BarLegend is displayed in StandardForm as a graphics object. ## How do I place a `Graphics` object in the `Epilog` of a `Graphics3D` object? Use `Epilog` with `Inset` to position the object. vr = BarLegend[{"DarkRainbow", {0, Max[data]}}, 25]; out = Show[a2, gr, PlotRange -> All, BoxRatios -> {1, 1, 1}, BoxStyle -> Directive[Dashed, Black, Thin], ViewPoint -> {-0.35, -2, 1.5}, AxesLabel -> {"x", "y", "Proportion"}, LabelStyle -> Directive[Blue, Bold], Ticks -> {{{0, 0}, {40, 0.5}, {80, 1}, {120, 1.5}, {160, 2}, {200, 2.5}}, {{0, 0}, {40, 0.5}, {80, 1}, {120, 1.5}, {160, 2}, {200, 2.5}}, {0, 0.5, 1}}, ImageSize -> Large, Epilog -> Inset[vr, {Right, Center}, {Right, Center}]] <img src="https://i.sstatic.net/Jzy2K.jpg" width="400" height="400"> The object will sit in front of the 3D object and will not move as the 3D object is rotated. ## How do I place a `Graphics` object wherever I want in the scene of a `Graphics3D` object? It _should_ be the same as you did with the `ListContourPlot a1`, but the `ListPlot3D a2` disappears every time I try it. Must be a bug. vr = BarLegend[{"DarkRainbow", {0, Max[data]}}, 25]; legendLeft = 190; legendWidth = 40; legendHeight = 200; legendDepth = 100; legend3D = Graphics3D[{EdgeForm[], {Texture[ Rasterize[vr, Background -> None, ImageResolution -> 200]], Polygon[{{legendLeft, legendDepth, 0}, {legendLeft + legendWidth, legendDepth, 0}, {legendLeft + legendWidth, legendDepth, legendHeight}, {legendLeft, legendDepth, legendHeight}}, VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}}]; out = Show[a2, gr, legend3D, PlotRange -> All, BoxRatios -> {1, 1, 1}, BoxStyle -> Directive[Dashed, Black, Thin], ViewPoint -> {-0.35, -2, 1.5}, AxesLabel -> {"x", "y", "Proportion"}, LabelStyle -> Directive[Blue, Bold], Ticks -> {{{0, 0}, {40, 0.5}, {80, 1}, {120, 1.5}, {160, 2}, {200, 2.5}}, {{0, 0}, {40, 0.5}, {80, 1}, {120, 1.5}, {160, 2}, {200, 2.5}}, {0, 0.5, 1}}, ImageSize -> Large] <img src="https://i.sstatic.net/qwaNC.jpg" width="400" height="400">