[NTG-context] Pgfplots - passing point coordinates by Lua

DesdeChaves desdechaves at gmail.com
Mon Feb 17 00:53:51 CET 2014


Try this way:

\usemodule[tikz]
\usemodule[pgfplots]
\usemodule[pgfplotstable]

\starttext

\startluacode

local dados={};

for i=1,10 do
dados[i]=2*i
end

context("\\starttikzpicture")
    context("\\pgfplotsset{width=10cm, compat=1.3, legend
style={font=\\tfx}}")
    context("\\startaxis[")
    context("xlabel={L  (m) },")
    context("ylabel={ $T^2 (s^2)$},legend cell align=left, legend pos=north
west]")
    context("\\addplot[only marks] table[row sep=\\\\]{")
     context("X Y\\\\")
for key,value in pairs(dados) do
context("%0.2f %0.1f \\\\", key, value)
end
 context("   };")
    context("\\addlegendentry{Experimental points}")
    context("\\addplot table[row sep=\\\\,")
    context("y={create col/linear regression={y=Y}}]{")
    context("X Y\\\\")
for key,value in pairs(dados) do
context("%0.2f %0.1f \\\\", key, value)
end
    context("};")
    context("\\addlegendentry{")
        context("$\\pgfmathprintnumber{\\pgfplotstableregressiona} \\cdot
x")
        context("\\pgfmathprintnumber[print
sign]{\\pgfplotstableregressionb}$ lin. Regression}")
    context("\\stopaxis")
context("\\stoptikzpicture")

\stopluacode


\stoptext


Jorge



2014-02-16 23:00 GMT+00:00 Jaroslav Hajtmar <hajtmar at gyza.cz>:

> Hi Lukas.
> A year ago, I tried something similar when I wanted to make an animated
> pdf images.
> With using Lua, I can not handle eventually, but for inspiration attach a
> piece of code that demonstrates how get into buffer some parameters without
> Lua code. Maybe it inspires you in your solution.
>
> I apologize for dirty code, but I cutting it from my old library and my
> context application. I did not clean it and I did not translate into
> English. For those interested I can possibly do.
>
> Jarda Hajtmar
>
> Here is my example:
>
>
> \usemodule[tikz]
> \usemodule[pgfplots]
>
> %\define[1]\ListEntry{#1\par}
> %\processcommalist[one,two,{three,four}]\ListEntry
> %\processseparatedlist[one*two*three,four][*]\ListEntry
> \def\zpracujparametry[#1]#2%
> {\processcommalist[#1]{\nastavparametr{#2}}}
> % Použití:
> % \zpracujparametry[1,5,3.7,4,5,8,9,11]{
> % \getbuffer[funkce1]
> % \page
> % }
>
>
> \def\ZPRACUJPARAMETRY#1[#2]#3%
> {\processseparatedlist[#2][#1]{\nastavparametr{#3}}}
> % Použití:
> % \ZPRACUJPARAMETRY{znak separátoru}[1,5,3.7,4,5,8,9,11]{
> % \getbuffer[funkce1]
> % \page
> % }
>
>
> \def\pmparametr#1=$#2${\global\def\parametr{#1}\global\def\mparametr{#2}}
>
> \def\nastavparametry#1#2{\pmparametr#2\global\def\pparametr{#2}#1}%
>
> \def\zpracujdvojparametry[#1]#2%
> {\processcommalist[#1]{\nastavparametry{#2}}}
> % Použití:
> % \zpracujdvojparametry[1=$a$,5=$b$,3.7=$c$,4=$d$,5=$e$,8=$f$,
> 9=$g$,11=$h$]{
> % \getbuffer[funkce1]
> % \page
> % }
>
> \def\ZPRACUJDVOJPARAMETRY#1[#2]#3%
> {\processseparatedlist[#2][#1]{\nastavparametry{#3}}}
> % Použití:
> % \ZPRACUJDVOJPARAMETRY{;}[1=$a$;5=$b$;3.7=$c$;4=$d$;5=$e$;8=$
> f$;9=$g$;11=$h$]{
> % \getbuffer[funkce1]
> % \page
> % }
>
>
>
> \startbuffer[goniometrickefunkce]
> \def\function{cos(deg(\x+\parametr))}
> \def\permfunction{cos(deg(\x))}
> \def\permfunctiontwo{sin(deg(\x))}
> \startTEXpage
> \starttikzpicture[scale=1]
> \tikzset{style={font=\ssxx}}
> \startaxis
> [xmin=-1.6,
> xmax=10,
> domain=-1.6:10,
> ymin=-1.1,
> ymax=1.1,
> width=\textwidth,
> height=0.3\textwidth,
> axis x line=middle,
> axis y line=middle,
> axis equal=true,
> xlabel=$x$,
> ylabel=$y$,
> samples=600,
> clip=true,
> xtick={0},
> ytick={-1,0,1},
> grid=major,
> extra x ticks={-1.57,1.57,3.14,4.71,6.28,7.85,9.42,10.99,12.57}, extra x
> tick labels={$-\frac{\pi}{2}$,$\frac{\pi}{2}$,$\pi$,$3\!\frac{
> \pi}{2}$,$2\pi$,$5\!\frac{\pi}{2}$,$3\pi$},
> title={{\framed[frame=off,height=1cm]{\blue $\ssb f\!:\ y=\cos{(x
> \mparametr )}$}}},
> ]
>
> \addplot[color=yellow, line width=0.5pt] {\permfunctiontwo};
> \addplot[color=red, line width=0.5pt] {\permfunction};
> \addplot[color=blue, line width=1pt] {\function};
>
> \stopaxis
> \stoptikzpicture
> \stopTEXpage
> \stopbuffer
>
>
>
>
>
>
>
>
>
> \starttext
>
> \ZPRACUJDVOJPARAMETRY{*}[1.57=$+\frac{\pi}{2}$*1.047=$+\
> frac{\pi}{3}$*0.785=$+\frac{\pi}{4}$*0.524=$+\frac{\pi}{6}$
> *0=$-0$*-0.524=$-\frac{\pi}{6}$*-0.785=$-\frac{\pi}{4}$*-1.
> 047=$-\frac{\pi}{3}$*-1.57=$-\frac{\pi}{2}$*-3.142=$-\pi$*-
> 4.712=$-\frac{3\pi}{2}$*6.28=$-2\pi$]{
> \getbuffer[goniometrickefunkce]
> \page
> }
>
> \stoptext
>
>
>
>
>
>
> Dne 15.2.2014 20:38, Lukáš Procházka napsal(a):
>
>> Hello,
>>
>> I just started experimenting with pgfplots package.
>>
>> I'd have two questions:
>>
>> 1) When plotting/loading a data file: Is it possible to specify the
>> comment mark, which is '#' and '%" by default? I'd need to treat ';' as a
>> comment mark, too.
>>
>> 2) How to pass coordinates of plot points by Lua?
>>
>> The following code:
>>
>> ----
>> \usemodule[tikz]
>> \usemodule[pgfplots]
>>
>> \startluacode
>> data = {{5, 15}, {20, 20}, {24, -24}}
>>
>> plot = function(data)
>> local str
>>
>> for i, v in ipairs(data) do
>> str = (str or "") .. "(" .. v[1] .. "," .. v[2] .. ")"
>> end
>>
>> print("Crds=", str)
>>
>> context(str)
>> end
>> \stopluacode
>>
>> \starttext
>> \starttikzpicture
>> \startaxis[]
>> \addplot[mark=none,color=red] coordinates {(11, 5) (12, 18)}; % THIS PLOT
>> IS OK
>> \addplot[mark=none,color=red] coordinates {\ctxlua{plot(data)}}; % THIS
>> PLOT HAS NO POINT (?!)
>> \stopaxis
>> \stoptikzpicture
>> \stoptext
>> ----
>>
>> gives error:
>>
>> "
>> ...
>> fonts > fallback modern rm 12pt is loaded
>> Crds= (5,15)(20,20)(24,-24)
>> Package pgfplots: Error! Sorry, I could not read the plot coordinates
>> near '(5,15)(20,20)(24,-24)'. Please check for format mistakes.
>> ! Package pgfplots Warning: the current plot has no coordinates (or all
>> have been filtered away)...
>> "
>>
>> Any idea from someone more familiar with pgfplots would be appreciated.
>>
>> TIA.
>>
>> Best regards,
>>
>> Lukas
>>
>>
>>
>>
>> ____________________________________________________________
>> _______________________
>> If your question is of interest to others as well, please add an entry to
>> the Wiki!
>>
>> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/
>> listinfo/ntg-context
>> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
>> archive  : http://foundry.supelec.fr/projects/contextrev/
>> wiki     : http://contextgarden.net
>> ____________________________________________________________
>> _______________________
>>
>
> ____________________________________________________________
> _______________________
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/
> listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ____________________________________________________________
> _______________________
>



-- 
Atentamente

DesdeChaves
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ntg.nl/pipermail/ntg-context/attachments/20140216/5a7ae090/attachment.html>


More information about the ntg-context mailing list