DisplayFunction to display to a second notebook

This notebook defines a value for DisplayFunction which renders plots in a notebook other than the evaluation notebook.

The function

NotebookDisplay[gr:(_Graphics|_Graphics3D|_SurfaceGraphics|_DensityGraphics|_ContourGraphics|_GraphicsArray)]:=Module[{data},
SelectionMove[EvaluationNotebook[],Next,EvaluationCell];
psstring=DisplayString[gr];
data = Cell[TextData[{Cell[GraphicsData["PostScript",psstring]]}],"Graphics"];
NotebookWrite[Graphnb,data]
]

To use the function

First you need to create a notebook called Graphnb.

Graphnb = NotebookCreate[]

Now you use the option value DisplayFunction → NotebookDisplay in your plot functions.

Plot[Sin[x],{x,0,6},DisplayFunction -> NotebookDisplay]

Plot3D[Sin[x + Cos[y]],{x,0,6},{y,0,6},DisplayFunction -> NotebookDisplay]

You can then save the notebook containing the graphics images as you would any other notebook.