Hi,
Were you aware that matplotlib itself has a PGF/TikZ backend
> http://matplotlib.org/users/pgf.html ?
>
No but this is really cool I think!
> An example of how to save a figure in PGF source:
>
> using PyPlot
>
> ##### plot appearance setup
> linewidth = 0.4
> plt.rc("axes", linewidth=linewidth)
> plt.rc("font", family="")
> plt.rc("axes", titlesize="small", labelsize="small")
> plt.rc("xtick", labelsize="x-small")
> plt.rc("xtick.major", width=linewidth/2)
> plt.rc("ytick", labelsize="x-small")
> plt.rc("ytick.major", width=linewidth/2)
> plt.rc("legend", fontsize="small")
>
> #### plot
> x = linspace(0,2pi,100);
> fig = plt.figure(figsize=(3,2));
> plot(x,sin(x),color="red");
> title(L"Test plot");
> xlabel(L"$x$");
> ylabel(L"$\sin(x)$");
>
> #### save plot as PGF source (no setup needed)
> plt.savefig("test.pgf")
>
>
On my setup (both in IJulia and REPL) I still need to do the pyimport of
the pgf backend to save as a "test.pgf". Is that just me?
> If one wants to directly generate a PDF, then
>
> ### setup matplotlib to save PDF with the PGF backend (tricky in Julia)
> using PyCall
> backend_pgf = pyimport("matplotlib.backends.backend_pgf")
> backend_bases = pyimport("matplotlib.backend_bases")
> backend_bases[:register_backend]("pdf", backend_pgf[:FigureCanvasPgf])
>
> ### setup PGF-PDF backend output appearance
> plt.rc("pgf", texsystem="pdflatex",
> preamble=L"""\usepackage[utf8x]{inputenc}
> \usepackage[T1]{fontenc}
> \usepackage{lmodern}""")
>
> #### save directly as PDF (there is NO need to save as PFG first)
> plt.savefig("test.pdf", transparent=true)
>
> I think you can make your package to use this features.
>
This would certainly be easy to implement. One small thing, a matter of
taste I would say, is that since I like to have figures saved both as
.pgf/.tikz/.tex and pdf, the pgf files are quite difficult to read (for me
at least) and therefore also more difficult to make corrections to. In the
.pgf case I would probably just run my plot script one more time with my
changes.
Do you have all your settings (the plt.rc parameters) ready each time you
savefig or do you copy-paste or have a module?
Cheers,
Oliver