* Bug 15299 fixed: plot() for polynomials & rationals
[scilab.git] / scilab / modules / graphics / help / en_US / 2d_plot / plot.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) INRIA - Fabrice Leray
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  * Copyright (C) 2018 - 2020 - Samuel GOUGEON
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17           xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml"
18           xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
19           xmlns:scilab="http://www.scilab.org" xml:id="plot" xml:lang="pt">
20     <refnamediv>
21         <refname>plot</refname>
22         <refpurpose>Esboço 2d</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>Seqüência de Chamamento</title>
26         <synopsis>
27             plot     // demo
28             plot(y)
29             plot(x, y)
30             plot(x, func)
31             plot(x, list(func, params))
32             plot(x, polynomial)
33             plot(x, rational)
34             plot(.., LineSpec)
35             plot(.., LineSpec, GlobalProperty)
36             plot(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM)
37             plot(x1,func1,LineSpec1, x2,y2,LineSpec2,...xN,funcN,LineSpecN, GlobalProperty1, ..GlobalPropertyM)
38             plot(logflag,...)
39             plot(axes_handle,...)
40         </synopsis>
41     </refsynopsisdiv>
42     <refsection role="parameters">
43         <title>Parâmetros</title>
44         <variablelist>
45             <varlistentry>
46                 <term>x</term>
47                 <listitem>
48                     <para>uma matriz ou vetor de reais. Se omitido, é assumido como
49                         sendo o vetor <literal>1:n</literal> onde <literal>n</literal> é o
50                         número de pontos de curva dado pelo parâmetro
51                         <literal>y</literal>.
52                     </para>
53                 </listitem>
54             </varlistentry>
55             <varlistentry>
56                 <term>y</term>
57                 <listitem>
58                     um vetor ou matriz de reais.
59                     <para/>
60                 </listitem>
61             </varlistentry>
62             <varlistentry>
63                 <term>func</term>
64                 <listitem>
65                     <para>
66                         função definida como um macro ou uma primitiva, como em
67                         <literal>plot(x, sin)</literal>.
68                         If the function to plot needs some parameters as input arguments, the
69                         function and its parameters can be specified through a list, as in
70                         <literal>plot(x, list(delip,-0.4))</literal>
71                     </para>
72                 </listitem>
73             </varlistentry>
74             <varlistentry>
75                 <term>polynomial</term>
76                 <listitem>
77                     Single polynomial or array of polynomials.
78                     <para/>
79                 </listitem>
80             </varlistentry>
81             <varlistentry>
82                 <term>rational</term>
83                 <listitem>
84                     Single rational or array of rationals.
85                     <para/>
86                 </listitem>
87             </varlistentry>
88             <varlistentry>
89                 <term>y1, y2, y3,..</term>
90                 <listitem>
91                     <para>
92                         Can be any of the possible input types described above:
93                         <itemizedlist>
94                             <listitem>
95                                 vectors or matrices of real numbers or of integers
96                             </listitem>
97                             <listitem>
98                                 handle of a function (possibly in a list with its parameters).
99                             </listitem>
100                             <listitem>
101                                 polynomials
102                             </listitem>
103                             <listitem>
104                                 rationals
105                             </listitem>
106                         </itemizedlist>
107                     </para>
108                 </listitem>
109             </varlistentry>
110             <varlistentry>
111                 <term>LineSpec</term>
112                 <listitem>
113                     <para>este argumento opcional deve ser usado como um atalho para
114                         especificar um modo de desenhar uma linha. Podemos ter um
115                         <literal>LineSpec</literal> por<literal> y</literal> ou
116                         <literal>{x,y}</literal> previamente entrados. As opções
117                         <literal>LineSpec</literal> lidam com os especificadores LineStyle,
118                         Marker e Color (ver <link linkend="LineSpec">LineSpec</link>). Estes
119                         especificadores determinam o estilo de linha, de marcas e a cor das
120                         linhas esboçadas.
121                     </para>
122                 </listitem>
123             </varlistentry>
124             <varlistentry>
125                 <term>GlobalProperty</term>
126                 <listitem>
127                     <para>este argumento opcional representa uma seqüência de pares de
128                         declarações <literal>{PropertyName,PropertyValue}</literal> tque
129                         define propriedades globais de objetos a serem aplicadas a todas as
130                         curvas criadas pelo esboço. Para uma visualização completa de das
131                         propriedades disponíveis veja <link linkend="GlobalProperty">GlobalProperty</link>.
132                     </para>
133                 </listitem>
134             </varlistentry>
135             <varlistentry>
136                 <term>logflag</term>
137                 <listitem>
138                     <para>
139                         "ln" | "nl" | "ll" : 2-character word made of "l" standing for
140                         "<emphasis role="bold">L</emphasis>ogarithmic" or/and "n" standing for
141                         "<emphasis role="bold">N</emphasis>ormal". The first character applies to
142                         the X axis, the second to the Y axis. Hence, "ln" means that the X axis
143                         is logarithmic and the Y axis is normal. The default is "nn":
144                         both axes in normal scales.
145                     </para>
146                     <para>
147                         <literal>logflag</literal> must be used after <literal>axes_handle</literal>
148                         (if any) and before the first curve's data <literal>x</literal> or
149                         <literal>y</literal> or <literal>func</literal>.
150                         It applies to all curves drawn by the <literal>plot(…)</literal> instruction.
151                     </para>
152                 </listitem>
153             </varlistentry>
154             <varlistentry>
155                 <term>axes_handle</term>
156                 <listitem>
157                     <para>este argumento opcional força o esboço a aparecer dentro dos
158                         eixos selecionados fornecidos por <literal>axes_handle</literal> ao
159                         invés dos eixos correntes (ver <link linkend="gca">gca</link>).
160                     </para>
161                 </listitem>
162             </varlistentry>
163         </variablelist>
164     </refsection>
165     <refsection role="description">
166         <title>Descrição</title>
167         <para>
168             <literal>plot</literal> esboça um conjunto de curvas 2d.
169             <literal>plot</literal> foi reconstruído para lidar melhor com a sintaxe
170             do Matlab. Para melhorar a compatibilidade gráfica com o Matlab, utilize
171             <literal>plot</literal> (ao invés de <link linkend="plot2d">plot2d</link>).
172         </para>
173         <para>Especificação de entrada de dados:</para>
174         <para>Neste parágrafo, para sermos mais claros, não mencionaremos os
175             argumentos opcionais <literal>LineSpec</literal> ou
176             <literal>GlobalProperty</literal> já que eles não interferem na entrada de
177             dados (exceto pelas propriedades <literal>"Xdata"</literal>,
178             <literal>"Ydata"</literal> e <literal>"Zdata"</literal>,
179             ver <link linkend="GlobalProperty">GlobalProperty</link>). É assumido que todos
180             estes argumentos podem estar presentes também.
181         </para>
182         <para>
183             Se <literal>y</literal> é um vetor, plot(y) esboça um vetor
184             <literal>y</literal> versus o vetor
185             <literal>1:size(y,'*')</literal>.
186         </para>
187         <para>
188             Se <literal>y</literal> é uma matriz, plot(y) esboça cada coluna de
189             <literal>y</literal> versus o vetor <literal>1:size(y,1)</literal>.
190         </para>
191         <para>
192             Se <literal>x</literal> e <literal>y</literal> são vetores,
193             plot(x,y) esboça o vetor <literal>y</literal> versus o vetor
194             <literal>x</literal>. Os vetores <literal>x</literal> e
195             <literal>y</literal> devem ter o mesmo número de entradas.
196         </para>
197         <para>
198             Se <literal>x</literal> é um vetor e <literal>y</literal> uma matriz
199             plot(x,y) esboça cada coluna de <literal>y</literal> versus o vetor
200             <literal>x</literal>. Neste caso, o número de colunas de
201             <literal>y</literal> deve ser igual ao número de entradas de
202             <literal>x</literal>.
203         </para>
204         <para>
205             Se <literal>x</literal> e <literal>y</literal> são matrizes,
206             plot(x,y) esboça cada coluna de <literal>y</literal> versus a coluna
207             correspondente de <literal>x</literal>. Neste caso, os tamanhos
208             <literal>x</literal> e <literal>y</literal> devem ser os mesmos.
209         </para>
210         <para>
211             Finalmente, se apenas <literal>x</literal> ou <literal>y</literal> é
212             uma matriz, o vetor é esboçado versus cada linha ou cada coluna da matriz.
213             A escolha é feita dependendo se a dimensão de linha ou coluna do vetor
214             coincide com a dimensão de linha ou coluna da matriz. No caso de uma
215             matriz quadrada (apenas <literal>x</literal> ou penas
216             <literal>y</literal>), a prioridade é dada a colunas ao invés de linhas
217             (ver exemplos abaixo).
218         </para>
219         <para>
220             <literal>y</literal> também pode ser uma função definida como um
221             macro ou uma primitiva. Neste caso, os dados <literal>x</literal> devem
222             ser fornecidos (como um vetor ou uma matriz) e a computação correspondente
223             de <literal>y(x)</literal> é feita implicitamente.
224         </para>
225         <para>
226             Os argumentos <literal>LineSpec</literal> e
227             <literal>GlobalProperty</literal> devem ser utilizados para customizar o
228             esboço. Aqui está uma lista completa das opções disponíveis.
229         </para>
230         <variablelist>
231             <varlistentry>
232                 <term>LineSpec</term>
233                 <listitem>
234                     <para>esta opção pode ser utilizada para se especificar, de um modo
235                         curto e fácil, como as curvas são desenhadas. Deve sempre ser um
236                         string contendo referências aos especificadores LineStyle, Marker e
237                         Color.
238                     </para>
239                     <para>Essas referências devem ser ajustadas denro do string (a ordem
240                         não é importante) de modo a não ter ambigüidades. Por exemplo, para
241                         especificar uma linha vermelha de traço longo com marcas de rombos,
242                         pode-se escrever : <literal>'r--d'</literal> ou
243                         <literal>'--dire'</literal> ou <literal>'--reddiam'</literal> ou
244                         outra sentença sem ambigüidade... ou de modo completo
245                         <literal>'diamondred--'</literal> (ver <link linkend="LineSpec">LineSpec</link>).
246                     </para>
247                     <para>Note que os estilos de linha e marcas (e tamanhos) e as cores,
248                         podem ser (re*)ajustados através das propriedades da entidade
249                         poligonal (ver <link linkend="polyline_properties">polyline_properties</link>).
250                     </para>
251                 </listitem>
252             </varlistentry>
253             <varlistentry>
254                 <term>GlobalProperty</term>
255                 <listitem>
256                     <para>esta opção pode ser utilizada para especificar como as linhas
257                         serão desenhadas com mais opções que via
258                         <literal>LineSpec</literal>. Deve sempre ser um par de declarações
259                         constituidos de um string definindo <literal>PropertyName</literal>,
260                         (nome da propriedade) e seu valor associado
261                         <literal>PropertyValue</literal> (que pode ser um string, um inteiro
262                         ou qualquer outra coisa... dependendo do tipo de
263                         <literal>PropertyName</literal>). Utilizando-se
264                         <literal>GlobalProperty</literal>, pode-se ajustar várias
265                         propriedades : todas as propriedades disponíveis via LineSpec e
266                         mais: a cor da marca (plano de fundo e primeiro plano), a
267                         visibilidade, o recorte e a espessura das curvas.
268                         (ver <link linkend="GlobalProperty">GlobalProperty</link>)
269                     </para>
270                     <para>
271                         Note que todas as propriedades podem ser (re-)ajustadas
272                         através das propriedades de entidades poligonais
273                         (ver <link linkend="polyline_properties">polyline_properties</link>).
274                     </para>
275                 </listitem>
276             </varlistentry>
277         </variablelist>
278     </refsection>
279     <refsection role="description">
280         <title>Observações </title>
281         <para>Por padrão, esboços sucessivos são superpostos. Para limpar o esboço
282             anterior, use <literal>clf()</literal>. Para habilitar o modo
283             <literal>auto_clear</literal> (limpeza automática) como modo padrão, edite
284             seus eixos fazendo o seguinte:
285         </para>
286         <para>da=gda();</para>
287         <para>da.auto_clear = 'on'</para>
288         <para>
289             Para uma melhor exibição, a função <literal>plot</literal> pode
290             modificar a propriedade <literal>box</literal> de seu Axes (eixos) raíze.
291             Isto acontece quando uma entidade Axes é criada por uma chamada a
292             <literal>plot</literal> ou é vazia antes da chamada. Se um dos eixos é
293             centrado na origem, box é desabilitado. Em caso contrário, box é
294             habilitado.
295         </para>
296         <para>Para mais informações sobre a propriedade box e sobre o
297             posicionamento dos eixos, veja <link linkend="axes_properties">axes_properties</link>
298         </para>
299         <para>Uma tabela de cores padrão é utilizada para colorir as curvas
300             esboçadas quando você não especifica as cores. Ao desenhar linhas
301             múltiplas, o comando plot automaticamente atribui as cores abaixo de modo
302             cíclico. Aqui estão as cores utilizadas:
303         </para>
304         <informaltable border="1">
305             <tr>
306                 <th> <literal>R</literal> </th>
307                 <th> <literal>G</literal> </th>
308                 <th> <literal>B</literal> </th>
309             </tr>
310             <tr> <td>0.</td>   <td>0.</td>   <td>1.</td>   </tr>
311             <tr> <td>0.</td>   <td>0.5</td>  <td>0.</td>   </tr>
312             <tr> <td>1.</td>   <td>0.</td>   <td>0.</td>   </tr>
313             <tr> <td>0.</td>   <td>0.75</td> <td>0.75</td> </tr>
314             <tr> <td>0.75</td> <td>0.</td>   <td>0.75</td> </tr>
315             <tr> <td>0.75</td> <td>0.75</td> <td>0.</td>   </tr>
316             <tr> <td>0.25</td> <td>0.25</td> <td>0.25</td> </tr>
317         </informaltable>
318         <para/>
319         <para>
320             Entre com o comando <literal>plot</literal> para visualizar uma
321             demonstração.
322         </para>
323     </refsection>
324     <refsection role="examples">
325         <title>Exemplos</title>
326         <para>
327             <emphasis role="bold">Choosing the normal or logarithmic plotting mode:</emphasis>
328         </para>
329         <programlisting role="example"><![CDATA[
330 gda().grid = [1 1]*color("grey70");
331 title(gda(), "fontsize", 3, "color", "lightseagreen", "fontname", "helvetica bold");
332
333 x = linspace(1e-1,100,1000);
334 xm = 35;
335 dx = 17;
336 G = exp(-((x-xm)/dx).^2/2)*30;
337
338 scf(1); clf
339 subplot(2,2,1), plot(x, G),       title("plot(x, y)")
340 subplot(2,2,2), plot("ln", x, G), title("semilog-x : plot(""ln"", x, y)"); gca().sub_ticks(1) = 8;
341 subplot(2,2,3), plot("nl", x, G), title("semilog-y : plot(""nl"", x, y)"); gca().sub_ticks(2) = 8;
342 subplot(2,2,4), plot("ll", x, G), title("loglog : plot(""ll"", x, y)");    gca().sub_ticks = [8 8];
343
344 sda();
345  ]]></programlisting>
346         <scilab:image>
347             gda().grid = [1 1]*color("grey70");
348             title(gda(), "", "fontsize", 3, "color", "lightseagreen", "fontname", "helvetica bold");
349
350             x = linspace(1e-1,100,1000);
351             xm = 35;
352             dx = 17;
353             G = exp(-((x-xm)/dx).^2/2)*30;
354             scf(1); clf
355             subplot(2,2,1), plot(x, G),       title("plot(x, y)")
356             subplot(2,2,2), plot("ln", x, G), title("semilog-x : plot(""ln"", x, y)")
357             gca().sub_ticks(1) = 8;
358             subplot(2,2,3), plot("nl", x, G), title("semilog-y : plot(""nl"", x, y)")
359             gca().sub_ticks(2) = 8;
360             subplot(2,2,4), plot("ll", x, G), title("loglog : plot(""ll"", x, y)")
361             gca().sub_ticks = [8 8];
362
363             gcf().axes_size = [750 520];
364             sda();
365         </scilab:image>
366         <para/>
367         <para>
368             <emphasis role="bold">Simple plot of a single curve:</emphasis>
369         </para>
370         <programlisting role="example"><![CDATA[
371 // Default abscissae = indices
372 subplot(1,2,1)
373 plot(sin(0:0.1:2*%pi))
374 xlabel("x indices")
375
376 // With explicit abscissae:
377 x = [0:0.1:2*%pi]';
378 subplot(1,2,2)
379 plot(x, sin(x))
380 xlabel("Specified abscissae")
381  ]]></programlisting>
382         <scilab:image>
383             // Default abscissae = indices
384             subplot(1,2,1)
385             plot(sin(0:0.1:2*%pi))
386             xlabel("x indices")
387
388             // With explicit abscissae:
389             x = [0:0.1:2*%pi]';
390             subplot(1,2,2)
391             plot(x, sin(x))
392             xlabel("Specified abscissae")
393
394             gcf().axes_size = [700 350];
395         </scilab:image>
396         <para>
397             <emphasis role="bold">Multiple curves with shared abscissae:</emphasis>
398             Y: 1 column = 1 curve:
399         </para>
400         <programlisting role="example"><![CDATA[
401 clf
402 x = [0:0.1:2*%pi]';
403 plot(x, [sin(x) sin(2*x) sin(3*x)])
404  ]]></programlisting>
405         <scilab:image>
406             x=[0:0.1:2*%pi]';
407             plot(x,[sin(x) sin(2*x) sin(3*x)])
408
409             gcf().axes_size = [700 350];
410         </scilab:image>
411         <para>
412             <emphasis role="bold">
413                 Specifying a macro or a builtin instead of explicit ordinates:
414             </emphasis>
415         </para>
416         <para>
417         <programlisting role="example"><![CDATA[
418 clf
419 subplot(2,2,1)         // sin() is a builtin
420 plot(1:0.1:10, sin)    // <=> plot(1:0.1:10, sin(1:0.1:10))
421 title("plot(x, sin)", "fontsize",3)
422
423 // with a macro:
424 deff('y = myFun(x)','y = x + rand(x)')
425 subplot(2,2,2)
426 plot(-3:0.1:5, myFun)
427 title("plot(x, myFun)", "fontsize",3)
428
429 // With functions with parameters:
430 subplot(2,2,3)
431 plot(1:0.05:7, list(delip, -0.4))  // <=> plot(1:0.05:7, delip(1:0.05:7,-0.4) )
432 title("plot(x, list(delip,-0.4))", "fontsize",3)
433
434 function Y = myPow(x,p)
435     [X,P] = ndgrid(x,p);
436     Y = X.^P;
437     m = max(abs(Y),"r");
438     for i = 1:size(Y,2)
439         Y(:,i) = Y(:,i)/m(i);
440     end
441 endfunction
442 x = -5:0.1:6;
443 subplot(2,2,4)
444 plot(x, list(myPow,1:5))
445 title("plot(x, list(myPow,1:5))", "fontsize",3)
446  ]]></programlisting>
447         <scilab:image><![CDATA[
448             subplot(2,2,1)         // sin() is a builtin
449             plot(1:0.1:10, sin)    // <=> plot(1:0.1:10, sin(1:0.1:10))
450             title("plot(x,sin)", "fontsize",3)
451
452             // with a macro:
453             deff('y = myFun(x)','y = x + rand(x)')
454             subplot(2,2,2)
455             plot(-3:0.1:5, myFun)
456             title("plot(x, myFun)", "fontsize",3)
457
458             // With functions with parameters:
459             subplot(2,2,3)
460             plot(1:0.05:7, list(delip, -0.4))  // <=> plot(1:0.05:7, delip(1:0.05:7,-0.4) )
461             title("plot(x, list(delip,-0.4))", "fontsize",3)
462
463             function Y = myPow(x,p)
464                 [X,P] = ndgrid(x,p);
465                 Y = X.^P;
466                 m = max(abs(Y),"r");
467                 for i = 1:size(Y,2)
468                     Y(:,i) = Y(:,i)/m(i);
469                 end
470             endfunction
471             x = -5:0.1:6;
472             subplot(2,2,4)
473             plot(x, list(myPow,1:5))
474             title("plot(x, list(myPow,1:5))", "fontsize",3)
475
476             gcf().axes_size = [730 500];
477         ]]></scilab:image>
478         </para>
479         <para/>
480         <para>
481             <emphasis role="bold">
482                 Plotting the graph of polynomials or rationals:
483             </emphasis>
484         </para>
485         <para>
486         <programlisting role="example"><![CDATA[
487 clf
488 s = %s;
489
490 // Polynomials
491 x = -0.5:0.02:3;
492 p = s*[2 ; (s-2) ; (s-1)*(s-2)]
493 subplot(1,2,1)
494 plot(x, p)
495 legend(prettyprint(p,"latex","",%t), 2);
496
497 // Rationals
498 x = -0.5:0.02:2;
499 r = (s-1)*s/(s-7)./[s+1, s-4]
500 subplot(1,2,2)
501 plot(x, r)
502 legend(prettyprint(r,"latex","",%t), 2);
503
504 gcf().children.grid = color("grey70")*[1 1]; // grids
505 gcf().children.children([1 3]).font_size=3;  // legends
506  ]]></programlisting>
507         <screen><![CDATA[
508 --> p = s*[2 ; (s-2) ; (s-1)*(s-2)]
509  p  =
510   2s
511   -2s +s²
512   2s -3s² +s³
513
514 ../..
515 --> r = (s-1)*s/(s-7)./[s+1, s-4]
516  r  =
517      -s +s²      -s +s²
518    ----------  -----------
519    -7 -6s +s²  28 -11s +s²
520 ]]></screen>
521         <scilab:image><![CDATA[
522             s = %s;
523
524             // Polynomials
525             x = -0.5:0.02:3;
526             p = s*[2 ; (s-2) ; (s-1)*(s-2)]
527             subplot(1,2,1)
528             plot(x, p)
529             legend(prettyprint(p,"latex","",%t), 2);
530
531             // Rationals
532             x = -0.5:0.02:2;
533             r = (s-1)*s/(s-7)./[s+1, s-4]
534             subplot(1,2,2)
535             plot(x, r)
536             legend(prettyprint(r,"latex","",%t), 2);
537
538             gcf().children.grid = color("grey70")*[1 1]; // grids
539             gcf().children.children([1 3]).font_size=3;  // legends
540             gcf().axes_size = [650 400];
541         ]]></scilab:image>
542         </para>
543         <para/>
544         <para>
545             <emphasis role="bold">Setting curves simple styles when calling plot():</emphasis>
546         </para>
547         <programlisting role="example"><![CDATA[
548 clf
549 t = -%pi:%pi/20:2*%pi;
550 // sin() : in Red, with O marks, without line
551 // cos() : in Green, with + marks, with a solid line
552 // gaussian: in Blue, without marks, with dotted line
553 gauss = 1.5*exp(-(t/2-1).^2)-1;
554
555 plot(t,sin,'ro', t,cos,'g+-', t,gauss,':b')
556  ]]></programlisting>
557         <scilab:image><![CDATA[
558             t = -%pi:%pi/20:2*%pi;
559             // sin() : in Red, with O marks, without line
560             // cos() : in Green, with + marks, with a solid line
561             // gaussian: in Blue, without marks, with dotted line
562             gauss = 1.5*exp(-(t/2-1).^2)-1;
563
564             plot(t,sin,'ro', t,cos,'g+-', t,gauss,':b')
565
566             gcf().axes_size = [800 400];
567         ]]>
568         </scilab:image>
569         <para>
570         Vertical segments between two curves, with automatic colors, and using Global properties
571         for markers styles. Targeting a defined axes.
572         </para>
573         <programlisting role="example"><![CDATA[
574 clf
575 subplot(1,3,3)
576 ax3 = gca();         // We will draw here later
577 xsetech([0 0 0.7 1]) // Defines the first Axes area
578 t = -3:%pi/20:7;
579 // Tuning markers properties
580 plot([t ;t],[sin(t) ;cos(t)],'marker','d','markerFaceColor','green','markerEdgeColor','yel')
581
582 // Targeting a defined axes
583 plot(ax3, t, sin)
584  ]]></programlisting>
585         <scilab:image><![CDATA[
586             clf
587             subplot(1,3,3)
588             ax3 = gca();         // We will draw here later
589             xsetech([0 0 0.7 1]) // Defines the first Axes area
590             t = -3:%pi/20:7;
591             // Tuning markers properties
592             plot([t ;t],[sin(t) ;cos(t)],'marker','d','markerFaceColor','green','markerEdgeColor','yel')
593
594             // Targeting a defined axes
595             plot(ax3, t, sin)
596
597             gcf().axes_size = [800 400];
598         ]]>
599         </scilab:image>
600         <para/>
601         <para/>
602         <para>
603             <emphasis role="bold">Case of a non-square Y matrix:</emphasis>
604             When it is consistent and required, X or/and Y data are
605             automatically transposed in order to become plottable.
606         </para>
607         <programlisting role="example"><![CDATA[
608 clf()
609 x = [5 6 7 8]
610 y = [1   1   1   1   8
611      2   3   4   5   9
612      3   4   5   6  10
613      4   5   6   7  12];
614
615 // Only one matching possibility case: how to make 4 identical plots in 4 manners...
616 // x is 1x4 (vector) and y is 4x5 (non square matrix)
617 subplot(221); plot(x', y , "o-");    // OK as is
618 subplot(222); plot(x , y , "o-");    // x is transposed
619 subplot(223); plot(x', y', "o-");    // y is transposed
620 subplot(224); plot(x , y', "o-");    // x and y are transposed
621  ]]></programlisting>
622         <scilab:image>
623             x = [5 6 7 8]
624             y = [1   1   1   1   8
625                  2   3   4   5   9
626                  3   4   5   6  10
627                  4   5   6   7  12];
628
629             // Only one matching possibility case: how to make 4 identical plots in 4 manners...
630             // x is 1x4 (vector) and y is 4x5 (non square matrix)
631             subplot(221); plot(x', y , "o-");    // OK as is
632             subplot(222); plot(x , y , "o-");    // x is transposed
633             subplot(223); plot(x', y', "o-");    // y is transposed
634             subplot(224); plot(x , y', "o-");    // x and y are transposed
635         </scilab:image>
636         <para>
637             <emphasis role="bold">Case of a square Y matrix, and X implicit or square:</emphasis>
638         </para>
639         <programlisting role="example"><![CDATA[
640 clf
641 t = [1   1   1   1
642      2   3   4   5
643      3   4   5   6
644      4   5   6   7];
645
646 subplot(231), plot(t,"o-") , title("plot(t)",  "fontsize",3)
647 subplot(234), plot(t',"o-"), title("plot(t'')", "fontsize",3)
648
649 subplot(232), plot(t,t,"o-") , title("plot(t, t)",  "fontsize",3)
650 subplot(233), plot(t,t',"o-"), title("plot(t,t'')", "fontsize",3)
651
652 subplot(235), plot(t', t,"o-"),  title("plot(t'', t)",   "fontsize",3)
653 subplot(236), plot(t', t',"o-"), title("plot(t'', t'')", "fontsize",3)
654
655 for i=1:6, gcf().children(i).data_bounds([1 3]) = 0.5; end
656  ]]></programlisting>
657         <scilab:image>
658             clf
659             t = [1   1   1   1
660                  2   3   4   5
661                  3   4   5   6
662                  4   5   6   7];
663
664             subplot(231), plot(t,"o-") , title("plot(t)",  "fontsize",3)
665             subplot(234), plot(t',"o-"), title("plot(t'')", "fontsize",3)
666
667             subplot(232), plot(t,t,"o-") , title("plot(t, t)",  "fontsize",3)
668             subplot(233), plot(t,t',"o-"), title("plot(t,t'')", "fontsize",3)
669
670             subplot(235), plot(t', t,"o-"),  title("plot(t'', t)",   "fontsize",3)
671             subplot(236), plot(t', t',"o-"), title("plot(t'', t'')", "fontsize",3)
672
673             for i=1:6, gcf().children(i).data_bounds([1 3]) = 0.5; end
674
675             gcf().axes_size = [800 450];
676         </scilab:image>
677         <para>
678             <emphasis role="bold">Special cases of a matrix X and a vector Y:</emphasis>
679         </para>
680         <programlisting role="example"><![CDATA[
681 clf
682 X = [1   1   1   1
683      2   3   4   5
684      3   4   5   6
685      4   5   6   7];
686 y = [1 2 3 4];
687
688 subplot(221), plot(X, y,  "o-"), title("plot(X, row)",  "fontsize",3)
689         // equivalent to plot(t, [1 1 1 1; 2 2 2 2; 3 3 3 3; 4 4 4 4])
690 subplot(223), plot(X, y', "o-"), title("plot(X, col)  (row = col'')",  "fontsize",3)
691 subplot(222), plot(X',y,  "o-"), title("plot(X'', row)",  "fontsize",3)
692 subplot(224), plot(X',y', "o-"), title("plot(X'', col)  (row = col'')",  "fontsize",3)
693
694 for i = 1:4, gcf().children(i).data_bounds([1 3]) = 0.5; end
695  ]]></programlisting>
696         <scilab:image>
697             clf
698             X = [1   1   1   1
699                  2   3   4   5
700                  3   4   5   6
701                  4   5   6   7];
702             y = [1 2 3 4];
703
704             subplot(221), plot(X, y,  "o-"), title("plot(X, row)",  "fontsize",3)
705                     // equivalent to plot(t, [1 1 1 1; 2 2 2 2; 3 3 3 3; 4 4 4 4])
706             subplot(223), plot(X, y', "o-"), title("plot(X, col)  (row = col'')",  "fontsize",3)
707             subplot(222), plot(X',y,  "o-"), title("plot(X'', row)",  "fontsize",3)
708             subplot(224), plot(X',y', "o-"), title("plot(X'', col)  (row = col'')",  "fontsize",3)
709
710             for i = 1:4, gcf().children(i).data_bounds([1 3]) = 0.5; end
711         </scilab:image>
712         <para/>
713         <para>
714             <emphasis role="bold">Post-tuning Axes and curves:</emphasis>
715         </para>
716         <programlisting role="example"><![CDATA[
717 x=[0:0.1:2*%pi]';
718 plot(x-4,sin(x),x+2,cos(x))
719
720 // axis centered at (0,0)
721 a=gca(); // Handle on axes entity
722 a.x_location = "origin";
723 a.y_location = "right";
724 isoview on
725
726 // Some operations on entities created by plot ...
727 a.children // list the children of the axes : here it is an Compound child composed of 2 entities
728 poly1= a.children.children(2); //store polyline handle into poly1
729 poly1.foreground = 4;  // another way to change the style...
730 poly1.thickness = 3;   // ...and the thickness of a curve.
731 poly1.clip_state='off' // clipping control
732 isoview off
733  ]]></programlisting>
734         <scilab:image>
735             x = [0:0.1:2*%pi]';
736             plot(x-4,sin(x),x+2,cos(x))
737             a = gca();
738             a.x_location = "origin";
739             a.y_location = "origin";
740             isoview on
741             a.children
742             poly1 = a.children.children(2);
743             poly1.foreground = 4;
744             poly1.thickness = 3;
745             poly1.clip_state='off'
746             isoview off
747         </scilab:image>
748     </refsection>
749     <refsection role="see also">
750         <title>Ver Também</title>
751         <simplelist type="inline">
752             <member>
753                 <link linkend="plot2d">plot2d</link>
754             </member>
755             <member>
756                 <link linkend="plot2d2">plot2d2</link>
757             </member>
758             <member>
759                 <link linkend="plot2d3">plot2d3</link>
760             </member>
761             <member>
762                 <link linkend="plot2d4">plot2d4</link>
763             </member>
764             <member>
765                 <link linkend="param3d">param3d</link>
766             </member>
767             <member>
768                 <link linkend="surf">surf</link>
769             </member>
770             <member>
771                 <link linkend="scf">scf</link>
772             </member>
773             <member>
774                 <link linkend="clf">clf</link>
775             </member>
776             <member>
777                 <link linkend="close">close</link>
778             </member>
779             <member>
780                 <link linkend="delete">delete</link>
781             </member>
782             <member>
783                 <link linkend="LineSpec">LineSpec</link>
784             </member>
785             <member>
786                 <link linkend="color_list">Cores nomeadas</link>
787             </member>
788             <member>
789                 <link linkend="GlobalProperty">GlobalProperty</link>
790             </member>
791         </simplelist>
792     </refsection>
793     <refsection role="history">
794         <title>Histórico</title>
795         <revhistory>
796             <revision>
797                 <revnumber>6.0.1</revnumber>
798                 <revdescription>
799                     The "color"|"foreground", "markForeground", and "markBackground" GlobalProperty
800                     colors can now be chosen among the full predefined colors list, or by
801                     their "#RRGGBB" hexadecimal codes, or by their indices in the colormap.
802                 </revdescription>
803             </revision>
804             <revision>
805                 <revnumber>6.0.2</revnumber>
806                 <revdescription>
807                     Plotting a function func(x, params) with input parameters is now possible with
808                     plot(x, list(func, params)).
809                 </revdescription>
810             </revision>
811             <revision>
812                 <revnumber>6.1.0</revnumber>
813                 <revdescription>
814                     logflag option added.
815                 </revdescription>
816             </revision>
817             <revision>
818                 <revnumber>6.1.1</revnumber>
819                 <revdescription>
820                     Polynomials and rationals can be plotted.
821                 </revdescription>
822             </revision>
823         </revhistory>
824     </refsection>
825 </refentry>