From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Mason Subject: Output result of source block to a file Date: Wed, 05 Jun 2019 08:11:50 -0230 Message-ID: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([209.51.188.92]:48790) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hYTMo-0000d3-4k for emacs-orgmode@gnu.org; Wed, 05 Jun 2019 06:42:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hYTMj-0002SB-8h for emacs-orgmode@gnu.org; Wed, 05 Jun 2019 06:42:02 -0400 Received: from esa08.ucs.mun.ca ([134.153.136.28]:5384) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hYTMj-0002Pf-1y for emacs-orgmode@gnu.org; Wed, 05 Jun 2019 06:41:57 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Org-Mode 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. Here is the code: #+begin_src python :results value file :file scaleplot02.pdf :exports results :var data=test 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 This is the error: NameError: name 'file' is not defined Obviously the syntax on the begin_src line is wrong, but what should it be instead? Thanks, Roger