Thank you! This works! /Johan On Tue, Sep 10, 2013 at 1:08 AM, Rasmus wrote: > Johan Ekh 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. > > > > > >