emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: Inline plot with matplotlib
Date: Tue, 10 Sep 2013 01:08:43 +0200	[thread overview]
Message-ID: <87y575y4n8.fsf@gmx.us> (raw)
In-Reply-To: CAH13Zgiq-Xq3Z0bm=GaRc7H1VfgZFoTM0NYKbRPSu5dSpfjbHg@mail.gmail.com

Johan Ekh <ekh.johan@gmail.com> writes:

> Hi all,
> I would like to create a plot with matplotlib and have it exported to a
> beamer presentation without storing the plot in a file. Is that possible?

I guess you'd want to plot is as a pgf file, whether real of
'virtual'.  You could send the result to STDOUT but it may take a bit
more effort.  Also, a simple test with sys.stdout says the pgf backend
doesn't support stdout. . .

If *printing* to a pgf file everything works out of the box in recent
versions of Org.

> Can someone point me to an example or a good starting point?

  http://matplotlib.org/users/pgf.html

Here's an example of a simple plot.

#+TITLE: =matplotlib= and =pgf=
#+LATEX_HEADER: \usepackage{pgf}
#+NAME:spectrum
#+BEGIN_SRC python :var OUT="test.pgf" :exports results :results value file
  import matplotlib as mpl
  pgf_with_pdflatex = {
      "pgf.texsystem": "pdflatex",
      "text.usetex": True,
      'pgf.rcfonts': False,
      'font.size': 9,
      'fond.family': 'serif',
      "pgf.preamble": [
          r"\usepackage[utf8]{inputenc}",
          r"\usepackage[T1]{fontenc}"]}
  mpl.rcParams.update(pgf_with_pdflatex)
  import matplotlib.pyplot as plt
  from numpy import pi, cos, linspace
  s1, t1, t2 = 1, .8, .2
  s = lambda w: s1 / (2 * pi) * (1 + t1 ** 1 + t2 ** 2 + (1 + t2) * 2 * t1 * cos(w) + 2 * t2 * cos(4 * w))
  x = linspace(0, pi, 1000)
  plt.figure(figsize=(4,1.5))
  plt.plot(x, s(x))
  plt.xlim( 0, pi)
  plt.xlabel("$\\omega$")
  plt.ylabel("Spectrum")
  plt.tight_layout(0)
  plt.savefig(OUT, format = 'pgf')
  return(OUT)
#+END_SRC

#+RESULTS: spectrum
[[file:test.pgf]]




-- 
. . . The proofs are technical in nature and provides no real understanding.

  parent reply	other threads:[~2013-09-09 23:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-09 22:27 Inline plot with matplotlib Johan Ekh
2013-09-09 23:05 ` Eric Schulte
2013-09-09 23:08 ` Rasmus [this message]
2013-09-11 14:47   ` Johan Ekh

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=87y575y4n8.fsf@gmx.us \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    /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).