Ah, attention that both "plt.rc(......" blocks in my examples are 
completely optional, I just use them to better match the default LaTeX 
visuals.

On Monday, May 12, 2014 1:38:54 PM UTC+1, Cristóvão Duarte Sousa wrote:
>
> Hi,
>
> Were you aware that matplotlib itself has a PGF/TikZ backend 
> http://matplotlib.org/users/pgf.html ?
>
> With it one does not need to use matplotlib2tikz, and one can save plots 
> either as PFG files, prepared to
> be included in some LaTeX document, or directly as PDF.
>
> It took me long time to figure out how to properly tell matplotlib (from 
> within Julia) to use that backend to
> save PDF (I had to use PyCall in the end), but since then I've been 
> successfully using this feature in Julia.
>
> 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")
>
> 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.
>
> Cheers,
> Cristóvão
>
> On Monday, May 12, 2014 11:04:13 AM UTC+1, Oliver Lylloff wrote:
>>
>> Hello all, 
>>
>> For several years (in the dark Matlab-ages before Julia), I used 
>> matlab2tikz <https://github.com/nschloe/matlab2tikz> to generate nice 
>> looking pdf figures for academic reports. It's a nice tool and I personally 
>> like the idea that my data is exported from matlab to a .tikz or .tex file 
>> that I can make changes to without having to open matlab and reexport my 
>> figures.
>>
>> Julia already has some very nice plotting features in Winston, Gadfly and 
>> matplotlib (IJulia), am I forgetting someone? The exporting options are 
>> good and useful for many different purposes. However, for me, there's 
>> something extraordinary about the tikz/pgf plots that I haven't been able 
>> to reproduce with these packages. 
>>
>> Therefore I've made a quick-and-dirty module 
>> https://github.com/1oly/PrintFig.jl that uses PyCall to call 
>> matplotlib2tikz <https://github.com/nschloe/matplotlib2tikz>, a close 
>> relative to matlab2tikz, that exports figure objects to a .tex file using 
>> the standalone latex documentclass. I like this approach and it creates the 
>> figures that I like for academic work. It's not the intention to add this 
>> to METADATA but merely to get a discussion going - if anyone is interested 
>> at all...
>>
>> If anyone has comments, suggestions or want to discuss workflows for 
>> generating latex friendly plots, don't be shy :)
>>
>> Cheers,
>> Oliver
>>
>

Reply via email to