[graphics] better logarithmic plots 36/21436/16
mottelet [Thu, 12 Mar 2020 16:09:27 +0000 (17:09 +0100)]
Change-Id: I1356ffe8fa3b9503bd80959ad4495ec31430cfbe

14 files changed:
scilab/CHANGES.md
scilab/modules/graphics/help/en_US/2d_plot/loglog.xml [new file with mode: 0644]
scilab/modules/graphics/help/en_US/2d_plot/semilogx.xml [new file with mode: 0644]
scilab/modules/graphics/help/en_US/2d_plot/semilogy.xml [new file with mode: 0644]
scilab/modules/graphics/help/ru_RU/2d_plot/loglog.xml [new file with mode: 0644]
scilab/modules/graphics/help/ru_RU/2d_plot/semilogx.xml [new file with mode: 0644]
scilab/modules/graphics/help/ru_RU/2d_plot/semilogy.xml [new file with mode: 0644]
scilab/modules/graphics/macros/loglog.sci [new file with mode: 0644]
scilab/modules/graphics/macros/semilogx.sci [new file with mode: 0644]
scilab/modules/graphics/macros/semilogy.sci [new file with mode: 0644]
scilab/modules/helptools/etc/images_md5.txt
scilab/modules/helptools/images/loglog_1.png [new file with mode: 0644]
scilab/modules/helptools/images/semilogx_1.png [new file with mode: 0644]
scilab/modules/helptools/images/semilogy_1.png [new file with mode: 0644]

index 78f4b2e..5d37f45 100644 (file)
@@ -235,6 +235,7 @@ Feature changes and additions on 6.1.1
    - For assignable calls to `deff`, the `@` symbol can be used as function pseudo-name.
 * `mopen` and `mclose` now handle multiple files and file descriptors.
 * `hash` function with SHA-1,SHA-2 and SHA-3 Secure Hash Algorithms has been added.
+* `loglog`, `semilogx`, `semilogy` Matlab-compatible functions added.
 
 
 Help pages:
diff --git a/scilab/modules/graphics/help/en_US/2d_plot/loglog.xml b/scilab/modules/graphics/help/en_US/2d_plot/loglog.xml
new file mode 100644 (file)
index 0000000..5f9a640
--- /dev/null
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - Fabrice Leray
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - 2019 - Samuel GOUGEON
+ * Copyright (C) 2020 - Stéphane MOTTELET
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="loglog">
+    <refnamediv>
+        <refname>loglog</refname>
+        <refpurpose>2D logarithmic plot</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Syntax</title>
+        <synopsis>
+            loglog     // demo
+            loglog(y)
+            loglog(x, y)
+            loglog(x, fun)
+            loglog(x, list(fun, param))
+            loglog(.., LineSpec)
+            loglog(.., LineSpec, GlobalProperty)
+            loglog(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM)
+            loglog(x1,fun1,LineSpec1, x2,y2,LineSpec2,...xN,funN,LineSpecN, GlobalProperty1, ..GlobalPropertyM)
+            loglog(axes_handle,...)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>x</term>
+                <listitem>
+                    <para>
+                        vector or matrix of strictly positive real numbers or integers. If omitted, it is assumed
+                        to be the vector <literal>1:n</literal> where <literal>n</literal> is the
+                        number of curve points given by the <literal>y</literal> parameter.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>y</term>
+                <listitem>
+                    <para>
+                        vector or matrix of strictly positive real numbers or integers.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>fun, fun1, ..</term>
+                <listitem>
+                    <para>
+                        handle of a function, as in <literal>loglog(x, gamma)</literal>.
+                    </para>
+                    <para>
+                        If the function to plot needs some parameters as input arguments, the
+                        function and its parameters can be specified through a list, as in
+                        <literal>loglog(x, list(delip, -0.4))</literal>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>LineSpec</term>
+                <listitem>
+                    <para>This optional argument must be a string that will be used as a
+                        shortcut to specify a way of drawing a line. We can have one
+                        <literal>LineSpec</literal> per <literal>y</literal> or <literal>{x,y}</literal>
+                        previously entered. <literal>LineSpec</literal> options deals with
+                        LineStyle, Marker and Color specifiers (see <link linkend="LineSpec">LineSpec</link>).
+                        Those specifiers determine the line style, mark style and color of
+                        the plotted lines.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>GlobalProperty</term>
+                <listitem>
+                    <para>This optional argument represents a sequence of couple
+                        statements <literal>{PropertyName,PropertyValue}</literal> that defines
+                        global objects' properties applied to all the curves created by this
+                        plot. For a complete view of the available properties (see
+                        <link linkend="GlobalProperty">GlobalProperty</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>axes_handle</term>
+                <listitem>
+                    <para>This optional argument forces the plot to appear inside the
+                        selected axes given by <literal>axes_handle</literal> rather than the
+                        current axes (see <link linkend="gca">gca</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Description</title>
+        <para><literal>loglog</literal> plots data using a base 10 logarithmic scale for both x-axis and y-axis. The possible syntaxes and arguments are the same as the <link linkend="plot">plot</link> function besides the condition that values in <term>x</term> and <term>y</term> arguments be strictly positive.
+        </para>
+        <para>If the current axes is not empty and the x-axis or the y-axis has a negative lower bound then its scale will remain linear after the plot.
+        </para>
+        <para>
+            Enter the command <literal>loglog</literal> to see a demo.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="example"><![CDATA[
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=[];
+            for alpha=logspace(-2,1,4);
+              g=[g;(1)./(s.^2+alpha*s+1)];
+            end
+            clf("reset")
+
+            loglog(w,abs(g));
+
+            legend(leg)
+            title("$\LARGE \left|s^2/(s^2+\alpha s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$") ]]></programlisting>
+        <scilab:image>
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=[];
+            for alpha=logspace(-2,1,4);
+              g=[g;(1)./(s.^2+alpha*s+1)];
+            end
+            clf("reset")
+
+            loglog(w,abs(g));
+
+            title("$\LARGE \left|s^2/(s^2+\alpha s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")        </scilab:image>
+    </refsection>
+    <refsection role="see also">
+        <title>See also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="plot">plot</link>
+            </member>
+            <member>
+                <link linkend="semilogx">semilogx</link>
+            </member>
+            <member>
+                <link linkend="semilogy">semilogy</link>
+            </member>
+            <member>
+                <link linkend="LineSpec">LineSpec</link>
+            </member>
+            <member>
+                <link linkend="GlobalProperty">GlobalProperty</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                Function loglog added.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/graphics/help/en_US/2d_plot/semilogx.xml b/scilab/modules/graphics/help/en_US/2d_plot/semilogx.xml
new file mode 100644 (file)
index 0000000..e22470b
--- /dev/null
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - Fabrice Leray
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - 2019 - Samuel GOUGEON
+ * Copyright (C) 2020 - Stéphane MOTTELET
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="semilogx">
+    <refnamediv>
+        <refname>semilogx</refname>
+        <refpurpose>2D semilogarithmic plot</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Syntax</title>
+        <synopsis>
+            semilogx     // demo
+            semilogx(y)
+            semilogx(x, y)
+            semilogx(x, fun)
+            semilogx(x, list(fun, param))
+            semilogx(.., LineSpec)
+            semilogx(.., LineSpec, GlobalProperty)
+            semilogx(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM)
+            semilogx(x1,fun1,LineSpec1, x2,y2,LineSpec2,...xN,funN,LineSpecN, GlobalProperty1, ..GlobalPropertyM)
+            semilogx(axes_handle,...)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>x</term>
+                <listitem>
+                    <para>
+                        vector or matrix of strictly positive real numbers or integers. If omitted, it is assumed
+                        to be the vector <literal>1:n</literal> where <literal>n</literal> is the
+                        number of curve points given by the <literal>y</literal> parameter.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>y</term>
+                <listitem>
+                    <para>
+                        vector or matrix of real numbers or of integers.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>fun, fun1, ..</term>
+                <listitem>
+                    <para>
+                        handle of a function, as in <literal>semilogx(x, sin)</literal>.
+                    </para>
+                    <para>
+                        If the function to plot needs some parameters as input arguments, the
+                        function and its parameters can be specified through a list, as in
+                        <literal>semilogx(x, list(delip, -0.4))</literal>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>LineSpec</term>
+                <listitem>
+                    <para>This optional argument must be a string that will be used as a
+                        shortcut to specify a way of drawing a line. We can have one
+                        <literal>LineSpec</literal> per <literal>y</literal> or <literal>{x,y}</literal>
+                        previously entered. <literal>LineSpec</literal> options deals with
+                        LineStyle, Marker and Color specifiers (see <link linkend="LineSpec">LineSpec</link>).
+                        Those specifiers determine the line style, mark style and color of
+                        the plotted lines.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>GlobalProperty</term>
+                <listitem>
+                    <para>This optional argument represents a sequence of couple
+                        statements <literal>{PropertyName,PropertyValue}</literal> that defines
+                        global objects' properties applied to all the curves created by this
+                        plot. For a complete view of the available properties (see
+                        <link linkend="GlobalProperty">GlobalProperty</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>axes_handle</term>
+                <listitem>
+                    <para>This optional argument forces the plot to appear inside the
+                        selected axes given by <literal>axes_handle</literal> rather than the
+                        current axes (see <link linkend="gca">gca</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Description</title>
+        <para><literal>semilogx</literal> plots data using a base 10 logarithmic scale for the x-axis and a normal (linear) scale for the y-axis. The possible syntaxes and arguments are the same as the <link linkend="plot">plot</link> function besides the condition that the abscisae values in <term>x</term> argument be strictly positive.
+        </para>
+        <para>If the current axes is not empty and the the x-axis has a negative lower bound then its scale will remain linear after the plot.
+        </para>
+        <para>
+            Enter the command <literal>semilogx</literal> to see a demo.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="example"><![CDATA[
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogx(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+ ]]></programlisting>
+        <scilab:image>
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogx(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+        </scilab:image>
+    </refsection>
+    <refsection role="see also">
+        <title>See also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="plot">plot</link>
+            </member>
+            <member>
+                <link linkend="semilogy">semilogy</link>
+            </member>
+            <member>
+                <link linkend="loglog">loglog</link>
+            </member>
+            <member>
+                <link linkend="LineSpec">LineSpec</link>
+            </member>
+            <member>
+                <link linkend="GlobalProperty">GlobalProperty</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                Function semilogx added.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/graphics/help/en_US/2d_plot/semilogy.xml b/scilab/modules/graphics/help/en_US/2d_plot/semilogy.xml
new file mode 100644 (file)
index 0000000..8a75808
--- /dev/null
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - Fabrice Leray
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - 2019 - Samuel GOUGEON
+ * Copyright (C) 2020 - Stéphane MOTTELET
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="semilogy">
+    <refnamediv>
+        <refname>semilogy</refname>
+        <refpurpose>2D semilogarithmic plot</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Syntax</title>
+        <synopsis>
+            semilogy     // demo
+            semilogy(y)
+            semilogy(x, y)
+            semilogy(x, fun)
+            semilogy(x, list(fun, param))
+            semilogy(.., LineSpec)
+            semilogy(.., LineSpec, GlobalProperty)
+            semilogy(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM)
+            semilogy(x1,fun1,LineSpec1, x2,y2,LineSpec2,...xN,funN,LineSpecN, GlobalProperty1, ..GlobalPropertyM)
+            semilogy(axes_handle,...)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>x</term>
+                <listitem>
+                    <para>
+                        vector or matrix of real numbers or integers. If omitted, it is assumed
+                        to be the vector <literal>1:n</literal> where <literal>n</literal> is the
+                        number of curve points given by the <literal>y</literal> parameter.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>y</term>
+                <listitem>
+                    <para>
+                        vector or matrix of strictly positive real numbers or integers. 
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>fun, fun1, ..</term>
+                <listitem>
+                    <para>
+                        handle of a function, as in <literal>semilogy(x, gamma)</literal>.
+                    </para>
+                    <para>
+                        If the function to plot needs some parameters as input arguments, the
+                        function and its parameters can be specified through a list, as in
+                        <literal>semilogy(x, list(delip, -0.4))</literal>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>LineSpec</term>
+                <listitem>
+                    <para>This optional argument must be a string that will be used as a
+                        shortcut to specify a way of drawing a line. We can have one
+                        <literal>LineSpec</literal> per <literal>y</literal> or <literal>{x,y}</literal>
+                        previously entered. <literal>LineSpec</literal> options deals with
+                        LineStyle, Marker and Color specifiers (see <link linkend="LineSpec">LineSpec</link>).
+                        Those specifiers determine the line style, mark style and color of
+                        the plotted lines.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>GlobalProperty</term>
+                <listitem>
+                    <para>This optional argument represents a sequence of couple
+                        statements <literal>{PropertyName,PropertyValue}</literal> that defines
+                        global objects' properties applied to all the curves created by this
+                        plot. For a complete view of the available properties (see
+                        <link linkend="GlobalProperty">GlobalProperty</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>axes_handle</term>
+                <listitem>
+                    <para>This optional argument forces the plot to appear inside the
+                        selected axes given by <literal>axes_handle</literal> rather than the
+                        current axes (see <link linkend="gca">gca</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Description</title>
+        <para><literal>semilogy</literal> plots data using a base 10 logarithmic scale for the y-axis and a normal (linear) scale for the x-axis. The possible syntaxes and arguments are the same as the <link linkend="plot">plot</link> function besides the condition that the ordinate values in <term>y</term> argument be strictly positive.
+        </para>
+        <para>If the current axes is not empty and the y-axis has a negative lower bound then its scale will remain linear after the plot.
+        </para>
+        <para>
+            Enter the command <literal>loglog</literal> to see a demo.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="example"><![CDATA[
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogy(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+    ]]></programlisting>
+        <scilab:image>
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogy(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+         </scilab:image>
+    </refsection>
+    <refsection role="see also">
+        <title>See also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="plot">plot</link>
+            </member>
+            <member>
+                <link linkend="semilogx">semilogx</link>
+            </member>
+            <member>
+                <link linkend="loglog">loglog</link>
+            </member>
+            <member>
+                <link linkend="LineSpec">LineSpec</link>
+            </member>
+            <member>
+                <link linkend="GlobalProperty">GlobalProperty</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                Function semilogy added.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/graphics/help/ru_RU/2d_plot/loglog.xml b/scilab/modules/graphics/help/ru_RU/2d_plot/loglog.xml
new file mode 100644 (file)
index 0000000..08557c6
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - Fabrice Leray
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - 2019 - Samuel GOUGEON
+ * Copyright (C) 2020 - Stéphane MOTTELET
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="ru" xml:id="loglog">
+    <refnamediv>
+        <refname>loglog</refname>
+        <refpurpose>двумерный график в логарифмическом масштабе</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Синтаксис</title>
+        <synopsis>
+            loglog     // пример
+            loglog(y)
+            loglog(x, y)
+            loglog(x, fun)
+            loglog(x, list(fun, param))
+            loglog(.., LineSpec)
+            loglog(.., LineSpec, GlobalProperty)
+            loglog(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM)
+            loglog(x1,fun1,LineSpec1, x2,y2,LineSpec2,...xN,funN,LineSpecN, GlobalProperty1, ..GlobalPropertyM)
+            loglog(axes_handle,...)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Аргументы</title>
+        <variablelist>
+            <varlistentry>
+                <term>x</term>
+                <listitem>
+                    <para>
+                        вектор или матрица строго положительных вещественных чисел или целых
+                        чисел. Если не указано, то предполагается, что это вектор
+                        <literal>1:n</literal>, где <literal>n</literal> - это число точек
+                        кривой, указанных в параметре <literal>y</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>y</term>
+                <listitem>
+                    <para>
+                        вектор или матрица строго положительных вещественных чисел или целых
+                        чисел.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>fun, fun1, ..</term>
+                <listitem>
+                    <para>
+                        указатель функции, как, например, <literal>loglog(x, gamma)</literal>.
+                    </para>
+                    <para>
+                        Если функции для построения нужны некоторые параметры в качестве входных
+                        аргументов, то функция и её параметры могут быть определены через список,
+                        как например, <literal>loglog(x, list(delip, -0.4))</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>LineSpec</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент должен быть строковым, который будет
+                        использоваться в качестве сокращения способа построения линии. Мы можем
+                        иметь один аргумент <literal>LineSpec</literal> на <literal>y</literal>
+                        или <literal>{x,y}</literal> ранее введённые. Опции
+                        <literal>LineSpec</literal> работают с указателями
+                        <literal>LineStyle</literal>, <literal>Marker</literal> и
+                        <literal>Color</literal> (см. <link linkend="LineSpec">LineSpec</link>).
+                        Эти указатели определяют стиль линии, стиль маркера и цвет линий графика.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>GlobalProperty</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент представляет последовательность пар
+                        операторов <literal>{PropertyName,PropertyValue}</literal>, которая
+                        определяет глобальные свойства объектов, применяемые ко всем кривым,
+                        созданным этим графиком. Полный обозор доступных свойств смотрите в
+                        <link linkend="GlobalProperty">GlobalProperty</link>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>axes_handle</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент заставляет график строиться внутри выбранных
+                        осей указанных с помощью <literal>axes_handle</literal>, а не в текущих
+                        осях (см. <link linkend="gca">gca</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Описание</title>
+        <para>
+            <literal>loglog</literal> строит данные, используя логарифмическую шкалу по основанию
+            10 как по оси x, так и по оси y. Возможные синтаксисы и аргументы те же, что и у
+            функции <link linkend="plot">plot</link> при условии, что значения в агрументах
+            <term>x</term> и <term>y</term> будут строго положительными.
+        </para>
+        <para>
+            Если текущие оси не пусты и ось x или ось y имеют нижнюю отрицательную границу
+            диапазона, то масштаб графика останется линейным после построения.
+        </para>
+        <para>
+            Введите команду <literal>loglog</literal>, чтобы увидеть пример.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Примеры</title>
+        <programlisting role="example"><![CDATA[
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=[];
+            for alpha=logspace(-2,1,4);
+              g=[g;(1)./(s.^2+alpha*s+1)];
+            end
+            clf("reset")
+
+            loglog(w,abs(g));
+
+            legend(leg)
+            title("$\LARGE \left|s^2/(s^2+\alpha s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$") ]]></programlisting>
+        <scilab:image>
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=[];
+            for alpha=logspace(-2,1,4);
+              g=[g;(1)./(s.^2+alpha*s+1)];
+            end
+            clf("reset")
+
+            loglog(w,abs(g));
+
+            title("$\LARGE \left|s^2/(s^2+\alpha s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")        </scilab:image>
+    </refsection>
+    <refsection role="see also">
+        <title>Смотрите также</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="plot">plot</link>
+            </member>
+            <member>
+                <link linkend="semilogx">semilogx</link>
+            </member>
+            <member>
+                <link linkend="semilogy">semilogy</link>
+            </member>
+            <member>
+                <link linkend="LineSpec">LineSpec</link>
+            </member>
+            <member>
+                <link linkend="GlobalProperty">GlobalProperty</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection role="history">
+        <title>История</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    Добавлена функция loglog.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/graphics/help/ru_RU/2d_plot/semilogx.xml b/scilab/modules/graphics/help/ru_RU/2d_plot/semilogx.xml
new file mode 100644 (file)
index 0000000..cb9be21
--- /dev/null
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - Fabrice Leray
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - 2019 - Samuel GOUGEON
+ * Copyright (C) 2020 - Stéphane MOTTELET
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="ru" xml:id="semilogx">
+    <refnamediv>
+        <refname>semilogx</refname>
+        <refpurpose>двумерный полулогарифмический график</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Синтаксис</title>
+        <synopsis>
+            semilogx     // пример
+            semilogx(y)
+            semilogx(x, y)
+            semilogx(x, fun)
+            semilogx(x, list(fun, param))
+            semilogx(.., LineSpec)
+            semilogx(.., LineSpec, GlobalProperty)
+            semilogx(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM)
+            semilogx(x1,fun1,LineSpec1, x2,y2,LineSpec2,...xN,funN,LineSpecN, GlobalProperty1, ..GlobalPropertyM)
+            semilogx(axes_handle,...)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Аргументы</title>
+        <variablelist>
+            <varlistentry>
+                <term>x</term>
+                <listitem>
+                    <para>
+                        вектор или матрица строго положительных вещественных чисел или целых
+                        чисел. Если не указано, то предполагается, что это вектор
+                        <literal>1:n</literal>, где <literal>n</literal> - это число точек
+                        кривой, указанных в параметре <literal>y</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>y</term>
+                <listitem>
+                    <para>
+                        вектор или матрица строго положительных вещественных чисел или целых чисел.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>fun, fun1, ..</term>
+                <listitem>
+                    <para>
+                        указатель функции, как, например, <literal>semilogx(x, sin)</literal>.
+                    </para>
+                    <para>
+                        Если функции для построения нужны некоторые параметры в качестве входных
+                        аргументов, то функция и её параметры могут быть определены через список,
+                        как например, <literal>semilogx(x, list(delip, -0.4))</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>LineSpec</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент должен быть строковым, который будет
+                        использоваться в качестве сокращения способа построения линии. Мы можем
+                        иметь один аргумент <literal>LineSpec</literal> на <literal>y</literal>
+                        или <literal>{x,y}</literal> ранее введённые. Опции
+                        <literal>LineSpec</literal> работают с указателями
+                        <literal>LineStyle</literal>, <literal>Marker</literal> и
+                        <literal>Color</literal> (см. <link linkend="LineSpec">LineSpec</link>).
+                        Эти указатели определяют стиль линии, стиль маркера и цвет линий графика.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>GlobalProperty</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент представляет последовательность пар
+                        операторов <literal>{PropertyName,PropertyValue}</literal>, которая
+                        определяет глобальные свойства объектов, применяемые ко всем кривым,
+                        созданным этим графиком. Полный обозор доступных свойств смотрите в
+                        <link linkend="GlobalProperty">GlobalProperty</link>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>axes_handle</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент заставляет график строиться внутри выбранных
+                        осей указанных с помощью <literal>axes_handle</literal>, а не в текущих
+                        осях (см. <link linkend="gca">gca</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Описание</title>
+        <para>
+            <literal>semilogx</literal> строит данные, используя логарифмическую шкалу по
+            основанию 10 по оси x и нормальную (линейную) шкалу по оси y. Возможные синтаксисы и
+            аргументы те же, что и у функции <link linkend="plot">plot</link> при условии, что
+            значения абсциссы в агрументе <term>x</term> будут строго положительными.
+        </para>
+        <para>
+            Если текущие оси не пусты и ось x имеет нижнюю отрицательную границу
+            диапазона, то масштаб графика останется линейным после построения.
+        </para>
+        <para>
+            Введите команду <literal>semilogx</literal>, чтобы увидеть пример.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Примеры</title>
+        <programlisting role="example"><![CDATA[
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogx(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+ ]]></programlisting>
+        <scilab:image>
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogx(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+        </scilab:image>
+    </refsection>
+    <refsection role="see also">
+        <title>Смотрите также</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="plot">plot</link>
+            </member>
+            <member>
+                <link linkend="semilogy">semilogy</link>
+            </member>
+            <member>
+                <link linkend="loglog">loglog</link>
+            </member>
+            <member>
+                <link linkend="LineSpec">LineSpec</link>
+            </member>
+            <member>
+                <link linkend="GlobalProperty">GlobalProperty</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection role="history">
+        <title>История</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    Добавлена функция semilogx.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/graphics/help/ru_RU/2d_plot/semilogy.xml b/scilab/modules/graphics/help/ru_RU/2d_plot/semilogy.xml
new file mode 100644 (file)
index 0000000..c6b1e16
--- /dev/null
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - Fabrice Leray
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2018 - 2019 - Samuel GOUGEON
+ * Copyright (C) 2020 - Stéphane MOTTELET
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="ru" xml:id="semilogy">
+    <refnamediv>
+        <refname>semilogy</refname>
+        <refpurpose>2D semilogarithmic plot</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Синтаксис</title>
+        <synopsis>
+            semilogy     // demo
+            semilogy(y)
+            semilogy(x, y)
+            semilogy(x, fun)
+            semilogy(x, list(fun, param))
+            semilogy(.., LineSpec)
+            semilogy(.., LineSpec, GlobalProperty)
+            semilogy(x1, y1, LineSpec1, x2,y2,LineSpec2,...xN, yN, LineSpecN, GlobalProperty1,.. GlobalPropertyM)
+            semilogy(x1,fun1,LineSpec1, x2,y2,LineSpec2,...xN,funN,LineSpecN, GlobalProperty1, ..GlobalPropertyM)
+            semilogy(axes_handle,...)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Аргументы</title>
+        <variablelist>
+            <varlistentry>
+                <term>x</term>
+                <listitem>
+                    <para>
+                        вектор или матрица строго положительных вещественных чисел или целых
+                        чисел. Если не указано, то предполагается, что это вектор
+                        <literal>1:n</literal>, где <literal>n</literal> - это число точек
+                        кривой, указанных в параметре <literal>y</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>y</term>
+                <listitem>
+                    <para>
+                        вектор или матрица строго положительных вещественных чисел или целых
+                        чисел.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>fun, fun1, ..</term>
+                <listitem>
+                    <para>
+                        указатель функции, как, например, <literal>semilogy(x, gamma)</literal>.
+                    </para>
+                    <para>
+                        Если функции для построения нужны некоторые параметры в качестве входных
+                        аргументов, то функция и её параметры могут быть определены через список,
+                        как например, <literal>semilogy(x, list(delip, -0.4))</literal>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>LineSpec</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент должен быть строковым, который будет
+                        использоваться в качестве сокращения способа построения линии. Мы можем
+                        иметь один аргумент <literal>LineSpec</literal> на <literal>y</literal>
+                        или <literal>{x,y}</literal> ранее введённые. Опции
+                        <literal>LineSpec</literal> работают с указателями
+                        <literal>LineStyle</literal>, <literal>Marker</literal> и
+                        <literal>Color</literal> (см. <link linkend="LineSpec">LineSpec</link>).
+                        Эти указатели определяют стиль линии, стиль маркера и цвет линий графика.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>GlobalProperty</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент представляет последовательность пар
+                        операторов <literal>{PropertyName,PropertyValue}</literal>, которая
+                        определяет глобальные свойства объектов, применяемые ко всем кривым,
+                        созданным этим графиком. Полный обозор доступных свойств смотрите в
+                        <link linkend="GlobalProperty">GlobalProperty</link>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>axes_handle</term>
+                <listitem>
+                    <para>
+                        Этот необязательный аргумент заставляет график строиться внутри выбранных
+                        осей указанных с помощью <literal>axes_handle</literal>, а не в текущих
+                        осях (см. <link linkend="gca">gca</link>).
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Описание</title>
+        <para>
+            <literal>semilogy</literal> строит данные, используя логарифмическую шкалу по
+            основанию 10 по оси y и нормальную (линейную) шкалу по оси x. Возможные синтаксисы и
+            аргументы те же, что и у функции <link linkend="plot">plot</link> при условии, что
+            значения ординаты в агрументе <term>y</term> будут строго положительными.
+        </para>
+        <para>
+            Если текущие оси не пусты и ось y имеет нижнюю отрицательную границу
+            диапазона, то масштаб графика останется линейным после построения.
+        </para>
+        <para>
+            Введите команду <literal>semilogy</literal>, чтобы увидеть пример.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Примеры</title>
+        <programlisting role="example"><![CDATA[
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogy(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+    ]]></programlisting>
+        <scilab:image>
+            w=logspace(-2,2,1000);
+            s=%i*w;
+            g=1../(s.^2+s+1);
+            clf("reset")
+
+            semilogy(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+            xlabel("$\LARGE \omega$")
+         </scilab:image>
+    </refsection>
+    <refsection role="see also">
+        <title>Смотрите также</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="plot">plot</link>
+            </member>
+            <member>
+                <link linkend="semilogx">semilogx</link>
+            </member>
+            <member>
+                <link linkend="loglog">loglog</link>
+            </member>
+            <member>
+                <link linkend="LineSpec">LineSpec</link>
+            </member>
+            <member>
+                <link linkend="GlobalProperty">GlobalProperty</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection role="history">
+        <title>История</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    Добавлена функция semilogy.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/graphics/macros/loglog.sci b/scilab/modules/graphics/macros/loglog.sci
new file mode 100644 (file)
index 0000000..ec805c0
--- /dev/null
@@ -0,0 +1,45 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Stéphane MOTTELET
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function loglog(varargin)
+    [lhs,rhs]=argn(0);
+
+    if ~rhs
+       w=logspace(-2,2,1000);
+       s=%i*w;
+       g=[];
+       leg=[];
+       for alpha=logspace(-2,1,4);
+         g=[g;(1)./(s.^2+alpha*s+1)];
+       end
+       clf("reset")
+
+       loglog(w,abs(g));
+
+       title("$\LARGE \left|s^2/(s^2+\alpha s+1)\right|\mbox{ for }s=i\omega$")
+       xlabel("$\LARGE \omega$")
+       return
+    end
+
+    current_figure = gcf();
+    cur_draw_mode = current_figure.immediate_drawing;
+    current_figure.immediate_drawing = "off";
+
+    ok = isempty(gca().children) || and(gca().data_bounds([1 3]) > 0);
+    set(gca(),"log_flags","nn")
+    try
+        plot(varargin(:))
+        if ok
+            set(gca(),"log_flags","ll")
+        end
+    catch
+        current_figure.immediate_drawing = cur_draw_mode;
+        error(lasterror(%t))
+    end
+
+    current_figure.immediate_drawing = cur_draw_mode;
+endfunction
diff --git a/scilab/modules/graphics/macros/semilogx.sci b/scilab/modules/graphics/macros/semilogx.sci
new file mode 100644 (file)
index 0000000..0edffa3
--- /dev/null
@@ -0,0 +1,41 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Stéphane MOTTELET
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function semilogx(varargin)
+    [lhs,rhs]=argn(0);
+
+    if ~rhs
+       w=logspace(-2,2,1000);
+       s=%i*w;
+       g=1../(s.^2+s+1);
+       clf("reset")
+
+       semilogx(w,abs(g));
+
+            title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+       xlabel("$\LARGE \omega$")
+       return
+    end
+
+    current_figure = gcf();
+    cur_draw_mode = current_figure.immediate_drawing;
+    current_figure.immediate_drawing = "off";
+
+    ok = isempty(gca().children) || gca().data_bounds(1) > 0;
+    set(gca(),"log_flags","nn")
+    try
+        plot(varargin(:))
+        if ok
+            set(gca(),"log_flags","ln")
+        end
+    catch
+        current_figure.immediate_drawing = cur_draw_mode;
+        error(lasterror(%t))
+    end
+    current_figure.immediate_drawing = cur_draw_mode;
+
+endfunction
diff --git a/scilab/modules/graphics/macros/semilogy.sci b/scilab/modules/graphics/macros/semilogy.sci
new file mode 100644 (file)
index 0000000..23e6fea
--- /dev/null
@@ -0,0 +1,41 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Stéphane MOTTELET
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function semilogy(varargin)
+    [lhs,rhs]=argn(0);
+
+    if ~rhs
+       w=logspace(-2,2,1000);
+       s=%i*w;
+       g=1../(s.^2+s+1);
+       clf("reset")
+
+       semilogy(w,abs(g));
+
+       title("$\LARGE \left|1/(s^2+s+1)\right|\mbox{ for }s=i\omega$")
+       xlabel("$\LARGE \omega$")
+       return
+    end
+
+    current_figure = gcf();
+    cur_draw_mode = current_figure.immediate_drawing;
+    current_figure.immediate_drawing = "off";
+
+    ok = isempty(gca().children) || gca().data_bounds(3) > 0;
+    set(gca(),"log_flags","nn")
+    try
+        plot(varargin(:))
+        if ok
+            set(gca(),"log_flags","nl")
+        end
+    catch
+        current_figure.immediate_drawing = cur_draw_mode;
+        error(lasterror(%t))
+    end
+
+    current_figure.immediate_drawing = cur_draw_mode;
+endfunction
index 3d75436..b1206bc 100644 (file)
@@ -862,6 +862,7 @@ lighting_3.png=4db104cec73db5309f073b24c2d740e1
 linear_interpn_1.png=6097d912048862430be0c7efc1cb5715
 linear_interpn_2.png=babfba25d7f0743ed8a6f6618379fba9
 locate_1.png=12b128890d9e8e2336d8db9d64d8dfcb
+loglog_1.png=9e23c974da76a0bce5dac20746f5b3fb
 lqe_1.png=39cd8f90954e2b934b4926badcd56f7b
 lqg_1.png=3e8627090476b38335a391eb831767a6
 lqg_2.png=d0a7523f9ddee9c5f11c06682ff1b0c6
@@ -1049,6 +1050,8 @@ scatter_9.png=9f987520c26d42c41f2ee6d3ec930529
 scifunc_block_m_1.png=a26368cd2a69c472967105b9d8deb5ed
 sec_1.png=4eff2516ae7932bb126b6e2fa133f046
 sech_1.png=62b827923764aaaf8ce355b0256bef3b
+semilogx_1.png=b5d0ccb773bc68cab682b85e9299840c
+semilogy_1.png=22736d35bd7a6dff1a92af7a203cd81e
 sgolay_1.png=a68d1b4aa9bbf7ccfcd38dfd6158cf01
 sgolay_2.png=9ec7d521df8c827f7ef37e2997613bd6
 sgolaydiff_1.png=68aacc1223db752ac39fbede1935ac75
diff --git a/scilab/modules/helptools/images/loglog_1.png b/scilab/modules/helptools/images/loglog_1.png
new file mode 100644 (file)
index 0000000..d2312a9
Binary files /dev/null and b/scilab/modules/helptools/images/loglog_1.png differ
diff --git a/scilab/modules/helptools/images/semilogx_1.png b/scilab/modules/helptools/images/semilogx_1.png
new file mode 100644 (file)
index 0000000..e4fbed7
Binary files /dev/null and b/scilab/modules/helptools/images/semilogx_1.png differ
diff --git a/scilab/modules/helptools/images/semilogy_1.png b/scilab/modules/helptools/images/semilogy_1.png
new file mode 100644 (file)
index 0000000..467517d
Binary files /dev/null and b/scilab/modules/helptools/images/semilogy_1.png differ