[Top][All Lists]

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

Re: [O] Output result of source block to a file

From: John Kitchin
Subject: Re: [O] Output result of source block to a file
Date: Thu, 6 Jun 2019 17:12:40 -0400

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])
print(fname, end='')

It is in Python3.


Professor John Kitchin 
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213

On Thu, Jun 6, 2019 at 2:27 PM Roger Mason <address@hidden> wrote:
Hello again,

stardiviner <address@hidden> writes:

> Roger Mason <address@hidden> 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="" :var file="scaleplot03.pdf"
  import matplotlib.pyplot as plt
  import csv

  scale = []
  lescale = []
  cdscale = []

  energy = []
  leenergy = []
  cdenergy = []

  for row in data:
      if int(row[2]) != 0:
      if int(row[3]) != 0:

  plt.plot(scale,energy, 'r+')
  plt.plot(lescale,leenergy, 'go')
  plt.plot(cdscale,cdenergy, 'bo')
  plt.ylabel('energy (Ha)')
  plt.title('Energy vs scale')
  print ("./%s" % file)

#+RESULTS: scaleplot03
: ./scaleplot03.pdf

This header does not work either:
#+name: scaleplot04
#+begin_src python :results file link :exports results :var data="" :var file="scaleplot04.pdf"
( same pythone code here)

#+RESULTS: scaleplot04

Thank you for your help.


reply via email to

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