emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [Orgmode] Unable to capture the file name generated using matplo


From: Ken Mankoff
Subject: Re: [O] [Orgmode] Unable to capture the file name generated using matplotlib
Date: Tue, 26 May 2015 10:02:54 -0400

On 2015-05-26 at 09:26, Dror Atariah <address@hidden> wrote:
>> #+BEGIN_SRC python :session with_matplotlib :results file :exports both
>> import matplotlib
>> matplotlib.use('Agg')
>> import matplotlib.pyplot as plt
>> fig=plt.figure(figsize=(3,2))            # 4
>> plt.plot([1,3,2])                              # 3
>> plt.savefig('myfig.png')                  # 2
>> 'myfig.png'                                     # 1
>> #+END_SRC
>>
>> #+RESULTS:
>> [[file:myfig.png]]
>>
>
> As I mentioned before, if I evaluate the second block as-is I get the
> error. However, if I comment out all the lines except #1 then the code
> returns the correct results block. Then, I started to add the numbered
> lines. Adding #2 and #3 still doesn't break the behavior. Once adding line
> #4 the behavior breaks. Maybe this observation can be helpful? This happens
> both when starting Emacs -Q or without -Q.


Still no solution but a few comments:

1) What you write here and on SE are not the same. Please cut-and-paste because 
details matter. For example, the SE code has "import matplotlib.pyplot" and 
then "plt.figure" but that code crashes because you did not import "as plt" 
like you do here...

2) It seems to be an echo issue. In my *with_matplotlib* buffer in Emacs, I see:

#+BEGIN_EXAMPLE
Python 2.7.9 |Anaconda 2.2.0 (x86_64)| (default, Dec 15 2014, 10:37:34) 
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> import matplotlib
>>> matplotlib.use('Agg')
>>> import matplotlib.pyplot as plt
fig=plt.figure(figsize=(3,2))
plt.plot([1,3,2])

plt.savefig('myfig.png')
'myfig.png'

open('/var/folders/bl/trcxdptd1_q4k6q5fdhvp2m00000gn/T/babel-52565cmH/python-525659vF',
 'w').write(str(_))
'org_babel_python_eoe'
>>> [<matplotlib.lines.Line2D object at 0x10454dd10>]
>>> 'myfig.png'
>>> 'org_babel_python_eoe'
>>>
#+END_EXAMPLE

Where you see everything printed twice. I notice that in addition, you have

> r/folders/kz/1c2cxn1x60n_t5p2j1p02b180000gn/T/py6499_X0''', 'exec'));

at the top of your buffer, and I do not. I think the "exec" might be causing 
everything to echo as it runs, so everything is printed 2x, and that confuses 
Org, and it is not able to capture your filename.

  -k.
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]