Skip to main content
replaced http://mathematica.stackexchange.com/ with https://mathematica.stackexchange.com/
Source Link

Actually, I know just one special case where DisplayFunction -> Identity is in fact still needed even with version 8:

As I mention in this answerthis answer, assume you have started JavaGraphics in a Kernel-only session to make plots. Now you decide you're done displaying plots and instead want to create only non-displayed plots for export. Then you have to do something like this session:

In[1]:= <<JavaGraphics`
 -- Java graphics initialized -- 
(* Make interactive plots... *)
In[3]:= p=Plot[x,{x,0,1}]  
Out[3]= -Graphics-
(* after some more plotting, I want to stop displaying and export only: *)
In[6]:= r=Plot[x,{x,0,1},DisplayFunction->Identity];
In[7]:= Export["r.pdf",r]
Out[7]= r.pdf

The last plot isn't displayed but can be exported. Note that the semicolon ; does not determine whether a plot is displayed or not in this Kernel session. I.e., I could add the semicolon to line In[3] but it would make no difference.

Actually, I know just one special case where DisplayFunction -> Identity is in fact still needed even with version 8:

As I mention in this answer, assume you have started JavaGraphics in a Kernel-only session to make plots. Now you decide you're done displaying plots and instead want to create only non-displayed plots for export. Then you have to do something like this session:

In[1]:= <<JavaGraphics`
 -- Java graphics initialized -- 
(* Make interactive plots... *)
In[3]:= p=Plot[x,{x,0,1}]  
Out[3]= -Graphics-
(* after some more plotting, I want to stop displaying and export only: *)
In[6]:= r=Plot[x,{x,0,1},DisplayFunction->Identity];
In[7]:= Export["r.pdf",r]
Out[7]= r.pdf

The last plot isn't displayed but can be exported. Note that the semicolon ; does not determine whether a plot is displayed or not in this Kernel session. I.e., I could add the semicolon to line In[3] but it would make no difference.

Actually, I know just one special case where DisplayFunction -> Identity is in fact still needed even with version 8:

As I mention in this answer, assume you have started JavaGraphics in a Kernel-only session to make plots. Now you decide you're done displaying plots and instead want to create only non-displayed plots for export. Then you have to do something like this session:

In[1]:= <<JavaGraphics`
 -- Java graphics initialized -- 
(* Make interactive plots... *)
In[3]:= p=Plot[x,{x,0,1}]  
Out[3]= -Graphics-
(* after some more plotting, I want to stop displaying and export only: *)
In[6]:= r=Plot[x,{x,0,1},DisplayFunction->Identity];
In[7]:= Export["r.pdf",r]
Out[7]= r.pdf

The last plot isn't displayed but can be exported. Note that the semicolon ; does not determine whether a plot is displayed or not in this Kernel session. I.e., I could add the semicolon to line In[3] but it would make no difference.

Source Link
Jens
  • 97.6k
  • 7
  • 214
  • 504

Actually, I know just one special case where DisplayFunction -> Identity is in fact still needed even with version 8:

As I mention in this answer, assume you have started JavaGraphics in a Kernel-only session to make plots. Now you decide you're done displaying plots and instead want to create only non-displayed plots for export. Then you have to do something like this session:

In[1]:= <<JavaGraphics`
 -- Java graphics initialized -- 
(* Make interactive plots... *)
In[3]:= p=Plot[x,{x,0,1}]  
Out[3]= -Graphics-
(* after some more plotting, I want to stop displaying and export only: *)
In[6]:= r=Plot[x,{x,0,1},DisplayFunction->Identity];
In[7]:= Export["r.pdf",r]
Out[7]= r.pdf

The last plot isn't displayed but can be exported. Note that the semicolon ; does not determine whether a plot is displayed or not in this Kernel session. I.e., I could add the semicolon to line In[3] but it would make no difference.