Page 1 of 1

Printing different views of a shape plot

Posted: Mon Oct 05, 2015 6:07 am
by shhong
I am trying to generate many shape plots with different focuses and magnifications and save them by a python script. I managed to make the plots using .view, but discovered that .printfile only saves only the first view. Is there any way around this?

Re: Printing different views of a shape plot

Posted: Tue Oct 06, 2015 12:23 pm
by ted
Good question. Here's Michael Hines's answer:
The printfile methods for Graph, etc should be extended to allow an optional second arg that specifies the view number.

With some difficulty, one can use the PWFM to iterate over all the printable windows, and, based on the window title returned by pwfm.name(i) decide whether to add to the print list with pwfm.paper_place() and then print with pwmf.printfile, eg partially

Code: Select all

>>> from neuron import h
>>> s = h.Section()
# now start some graph and shapeplots with views.

>>> pwfm = h.PWManager[0]
>>> a = [pwfm.name(i) for i in range(int(pwfm.count()))]
>>> a
['NEURON Main Menu', 'Print & File Window Manager', 'Graph NewView x -0.5 : 5.5  y -92 : 52', 'Graph NewView x 1.11022 : 1.80032  y -19.5399 : 19.1054', 'Graph NewView x 3.79393 : 5.05911  y -67.1566 : -0.217262', 'Shape NewView x -281.1 : 381.1  y -331.1 : 331.1', 'Shape NewView x -182.879 : 73.7631  y -98.5293 : 176.067']
>>>
and here's a hoc example that assumes that some windows already exist, including two different views of a Shape:

Code: Select all

oc>objref pwfm
oc>pwfm = PWManager[0]
oc>pwfm.count()
	10 
oc>for i=0,pwfm.count()-1 print i, pwfm.name(i)
0 NEURON Main Menu 
1 Print & File Window Manager 
2 Temperature 
3 VariableTimeStep 
4 RunControl 
5 NEURON Demonstrations 
6 PointProcessManager 
7 Shape NewView x -619.845 : 653.847  y -334.027 : 937.633 
8 Graph[0]  x -0.5 : 5.5  y -92 : 52 
9 Shape NewView x -288.3 : 351.593  y -300 : 338.949 
oc>
I should mention that you don't have to create an instance of the PWManager class--it automatically exists if you are using NEURON's standard run system.