<div dir="ltr">Hi Johanna,<div><br></div><div>I had also wondered about this.  I took to scripting with FixedResolutionBuffer like Nathan mentioned, and I have had good luck with Matplotlib's ImageGrid command.  I use it to make both publishable plots and animations/movies.  Below is a basic version of the type of script I use in case that is helpful to you.  </div><div><br></div><div>Tim</div><div><br></div><div>---------------------------------------------------------------</div><div>import yt</div><div>import array as ar</div><div>import numpy as np</div><div>import pylab as plt</div><div>#from pylab import *</div><div>import matplotlib.animation as animation</div><div>from yt.visualization.fixed_resolution import FixedResolutionBuffer</div><div>from mpl_toolkits.axes_grid1 import ImageGrid</div><div><br></div><div><div>################</div><div># Globals</div><div>################</div></div><div>GATHER_IMAGES = False</div><div>ANIMATE = False </div><div>dumps = ar.array('i',(i for i in range(1,101,1))) </div><div>imagefolder = 'images'</div><div>xpix,ypix = 1024,512 #doesn't have to be resolution of simulation</div><div>xmin,xmax = 0.,1.</div><div>ymin,ymax = 0.,0.5</div><div><br></div><div>################</div><div># Specify files</div><div>################</div><div># ...</div><div><br></div><div>################</div><div># Gather images</div><div>################</div><div>if GATHER_IMAGES: </div><div><span class="Apple-tab-span" style="white-space:pre">    </span>for i in dumps:</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>ds = yt.load(file)</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>gs = ds.index.select_grids(ds.index.max_level)</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>grid = gs[0]</div><div><span class="Apple-tab-span" style="white-space:pre">         </span>#xaxis = grid['x'][:,0,0] #can access variables if needed</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>for var in vars:</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>prj = ds.proj(var,2)</div><div><span class="Apple-tab-span" style="white-space:pre">                 </span>prj_frb = FixedResolutionBuffer(prj, (xmin,xmax,ymin,ymax),(ypix,xpix))</div><div><span class="Apple-tab-span" style="white-space:pre">                      </span>img_prj = prj_frb[var] </div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>#at this step, can apply functions to prj_frb to alter image data, e.g.:</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>#img_prj = doSomething(img_frb[var])</div><div><span class="Apple-tab-span" style="white-space:pre">                 </span>img = np.array(img_prj) </div><div><span class="Apple-tab-span" style="white-space:pre">                    </span>img_name = var + `i` # (for example)</div><div><span class="Apple-tab-span" style="white-space:pre">                 </span>print "Saving image {}...".format(img_name)</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>file = open(imagefolder + img_name, 'w')</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>np.save(file,img)</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>file.close()</div><div><br></div><div>##################</div><div># Setup ImageGrid</div><div>##################<span class="Apple-tab-span" style="white-space:pre">     </span></div><div>N_SUBPLOTS = 2</div><div>fig = plt.figure(1, (7., 8.))</div><div>grid = ImageGrid(fig, 111, # similar to subplot(111)</div><div>                nrows_ncols = (2, 1), # creates 2x1 grid of axes</div><div>                axes_pad=0.15, # pad between axes in inch.</div><div>                direction='column',</div><div>                cbar_location='right',</div><div>                cbar_mode='each',</div><div>                cbar_pad =0.15,</div><div>                cbar_size='3.0%'</div><div>                )</div><div><br></div><div>def plotImages(iter):</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>i = dumps[0] + iter</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>for iplot in range(N_SUBPLOTS):</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>plt.setp(grid[iplot].get_yticklabels(), visible=False)</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>plt.setp(grid[iplot].get_xticklabels(), visible=False)</div><div><span class="Apple-tab-span" style="white-space:pre">               </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>if iplot == 0: #plot density</div><div><span class="Apple-tab-span" style="white-space:pre">                 </span>img_name = 'density' + `i`</div><div><span class="Apple-tab-span" style="white-space:pre">                   </span>img = np.load(imagefolder + img_name)</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vmin = min(map(min,img))</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>vmax = max(map(max,img))</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>im = grid[iplot].imshow(img,vmin=vmin, vmax=vmax, cmap='Spectral',extent=[xmin,xmax,ymin,ymax])</div><div><span class="Apple-tab-span" style="white-space:pre">                      </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>elif iplot == 1: #plot pressure</div><div><span class="Apple-tab-span" style="white-space:pre">                      </span>img_name = 'pressure' + `i`</div><div><span class="Apple-tab-span" style="white-space:pre">                  </span>img = np.load(imagefolder + img_name)</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>vmin = min(map(min,img))</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>vmax = max(map(max,img))</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>im = grid[iplot].imshow(img,vmin=vmin, vmax=vmax, cmap='Spectral',extent=[xmin,xmax,ymin,ymax])</div><div> <span class="Apple-tab-span" style="white-space:pre">            </span></div><div> <span class="Apple-tab-span" style="white-space:pre">           </span>if not(ANIMATE):</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>for t in grid.cbar_axes[iplot].get_yticklabels():</div><div><span class="Apple-tab-span" style="white-space:pre">                            </span>t.set_visible(False)</div><div><span class="Apple-tab-span" style="white-space:pre">                         </span>t.set_fontsize(14)</div><div><span class="Apple-tab-span" style="white-space:pre">                           </span>t.set_visible(True)</div><div><span class="Apple-tab-span" style="white-space:pre">                  </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>#show y ticks</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>plt.setp(grid[iplot].get_yticklabels(), visible=True)</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>#set limits</div><div><span class="Apple-tab-span" style="white-space:pre">          </span>grid[iplot].set_xlim(xmin,xmax)</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>grid[iplot].set_ylim(ymin,ymax)</div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span># show x-ticks </div><div><span class="Apple-tab-span" style="white-space:pre">     </span>plt.setp(grid[2].get_xticklabels(), visible=True)</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span># axes labels</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>grid[0].set_ylabel('density')</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>grid[1].set_ylabel('pressure')</div><div><span class="Apple-tab-span" style="white-space:pre">       </span></div><div>############</div><div># Make Plot</div><div>############</div><div>if GATHER_IMAGES:</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>sys.exit()</div><div>elif ANIMATE:</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>ani = animation.FuncAnimation(fig,plotImages,init_func=None,</div><div>    frames=len(dumps),interval=100, blit=False,repeat=False)</div><div>else:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>idump = 1 </div><div><span class="Apple-tab-span" style="white-space:pre">  </span>plotProfiles(idump)</div><div><br></div><div>plt.show()    </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 2, 2014 at 2:45 PM, Nathan Goldbaum <span dir="ltr"><<a href="mailto:nathan12343@gmail.com" target="_blank">nathan12343@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Tue, Dec 2, 2014 at 1:45 PM, Johanna Malinen <span dir="ltr"><<a href="mailto:pjmaline@gmail.com" target="_blank">pjmaline@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi,<br>
<br>
I just installed the yt development version<br>
<a href="http://hg.yt-project.org/yt/raw/yt/doc/install_script.sh" target="_blank">http://hg.yt-project.org/yt/raw/yt/doc/install_script.sh</a><br>
Version = 3.1-dev<br>
Changeset = dc2ade033502 (yt) tip<br>
into ubuntu 14.04<br>
with<br>
 INST_ZLIB=0<br>
 INST_FTYPE=0<br>
<br>
yt seemed to install properly and it works otherwise, but it doesn't<br>
open any windows when I'm trying to show an image, e.g.,<br>
when running the script<br>
<a href="http://yt-project.org/doc/quickstart/3)_Simple_Visualization.py" target="_blank">http://yt-project.org/doc/quickstart/3)_Simple_Visualization.py</a><br>
line by line in ipython:<br>
p = yt.ProjectionPlot(ds, "y", "density")<br>
p.show()   #doesn't open a window<br>
In [35]: p.show()<br>
<yt.visualization.plot_window.ProjectionPlot at 0x7fe1897941d0><br>
However, saving the image works:<br>
p.save()<br>
<br>
When I run that script directly with python, I get the following error:<br>
Traceback (most recent call last):<br>
  File "3)_Simple_Visualization_short.py", line 28, in <module><br>
    p.show()<br>
  File "/home/.../yt/yt-x86_64/src/yt-hg/yt/visualization/plot_container.py",<br>
line 622, in show<br>
    raise YTNotInsideNotebook<br>
yt.utilities.exceptions.YTNotInsideNotebook: This function only works<br>
from within an IPython Notebook.<br>
<br>
I'm using<br>
ipython --matplotlib<br>
from pylab import *<br>
and e.g. plot() and figure() open a window normally. Is there a way to<br>
open a window with yt's show() and other functions<br>
using ipython and python, or does that really require IPython Notebook?<br></blockquote><div><br></div></div></div><div>Hi Johanna,</div><div><br></div><div>This is a known issue:</div><div><br></div><div><a href="https://bitbucket.org/yt_analysis/yt/issue/660/support-for-interactive-mpl-backends" target="_blank">https://bitbucket.org/yt_analysis/yt/issue/660/support-for-interactive-mpl-backends</a><br></div><div><br></div><div>We had a recent discussion about this on the dev mailing list:</div><div><br></div><div><a href="http://lists.spacepope.org/pipermail/yt-dev-spacepope.org/2014-November/013944.html" target="_blank">http://lists.spacepope.org/pipermail/yt-dev-spacepope.org/2014-November/013944.html</a></div><div><br></div><div>So it's not impossible, but it will take some work.  I've wanted to get this set up for a while, but need to complete my Ph.D. before I can focus on this.  If someone else wants to step up and work on this, I think that would be an excellent contribution.</div><div><br></div><div>For now you do need to work inside of the IPython notebook if you want to interactively work with yt plots.</div><div><br></div><div>You can also manually create your plots using e.g. FixedResolutionBuffer and pyplot.</div><span class=""><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Cheers,<br>
Johanna<br>
_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org" target="_blank">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
</blockquote></span></div><br></div></div>
<br>_______________________________________________<br>
yt-users mailing list<br>
<a href="mailto:yt-users@lists.spacepope.org">yt-users@lists.spacepope.org</a><br>
<a href="http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org" target="_blank">http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org</a><br>
<br></blockquote></div><br></div>