From: John Kitchin <jkitchin@andrew.cmu.edu>
To: Roger Mason <rmason@mun.ca>
Cc: org-mode-email <emacs-orgmode@gnu.org>
Subject: Re: Output result of source block to a file
Date: Thu, 6 Jun 2019 17:12:40 -0400 [thread overview]
Message-ID: <CAJ51ETq_csufDRRPjpqRT6vQg5DGK8GAf2HaCJop0mRbEpV-DA@mail.gmail.com> (raw)
In-Reply-To: <y651s06d1zn.fsf@mun.ca>
[-- Attachment #1: Type: text/plain, Size: 2427 bytes --]
I think you can use something like this:
#+BEGIN_SRC python :results output file :var fname="test.png"
import matplotlib.pyplot as plt
import io
f = io.StringIO()
plt.plot([1, 2, 3, 17])
plt.savefig(fname)
print(fname, end='')
#+END_SRC
It is in Python3.
John
-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu
On Thu, Jun 6, 2019 at 2:27 PM Roger Mason <rmason@mun.ca> wrote:
> Hello again,
>
> stardiviner <numbchild@gmail.com> writes:
>
> > Roger Mason <rmason@mun.ca> writes:
> >
> >> Hello,
> >>
> >> I want to output the result of the evaluation of a (python) source block
> >> to a (graphics) file and have a link to the file inserted in the buffer.
> >
> > For this, you should try updated header arguments like ":results
> graphics link"
> > or ":results file link".
>
> I updated to Org mode version 9.2.3 (release_9.2.3-390-gfb5091 @
> /home/rmason/.emacs.d/org-git/lisp/)
>
> This works but sets the results to verbatim, hence the exported &
> compiled code does not include the graphic.
>
> #+name: scaleplot03
> #+begin_src python :results output graphics link :exports results :var
> data=test :var file="scaleplot03.pdf"
> import matplotlib.pyplot as plt
> import csv
>
> scale = []
> lescale = []
> cdscale = []
>
> energy = []
> leenergy = []
> cdenergy = []
>
> for row in data:
> scale.append(float(row[0]))
> energy.append(float(row[1]))
> if int(row[2]) != 0:
> lescale.append(float(row[0]))
> leenergy.append(float(row[1]))
> if int(row[3]) != 0:
> cdscale.append(float(row[0]))
> cdenergy.append(float(row[1]))
>
> plt.plot(scale,energy, 'r+')
> plt.plot(lescale,leenergy, 'go')
> plt.plot(cdscale,cdenergy, 'bo')
> plt.xlabel('scale')
> plt.ylabel('energy (Ha)')
> plt.title('Energy vs scale')
> plt.legend()
> plt.savefig(file)
> print ("./%s" % file)
> #+end_src
>
> #+RESULTS: scaleplot03
> : ./scaleplot03.pdf
>
> This header does not work either:
> #+name: scaleplot04
> #+begin_src python :results file link :exports results :var data=test :var
> file="scaleplot04.pdf"
> ( same pythone code here)
>
> #+RESULTS: scaleplot04
> [[file:None]]
> ]]
> #+end_src
>
> Thank you for your help.
>
> Roger
>
>
>
>
[-- Attachment #2: Type: text/html, Size: 3633 bytes --]
next prev parent reply other threads:[~2019-06-06 21:26 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-05 10:41 Output result of source block to a file Roger Mason
2019-06-05 13:17 ` stardiviner
2019-06-06 11:36 ` Roger Mason
2019-06-07 11:05 ` stardiviner
2019-06-06 18:04 ` Roger Mason
2019-06-06 21:12 ` John Kitchin [this message]
2019-06-07 10:00 ` Roger Mason
2019-06-07 15:01 ` John Kitchin
2019-06-08 10:51 ` Roger Mason
2019-06-08 20:40 ` John Kitchin
2019-06-05 13:33 ` Ken Mankoff
2019-06-06 11:48 ` Roger Mason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAJ51ETq_csufDRRPjpqRT6vQg5DGK8GAf2HaCJop0mRbEpV-DA@mail.gmail.com \
--to=jkitchin@andrew.cmu.edu \
--cc=emacs-orgmode@gnu.org \
--cc=rmason@mun.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).