Revert "* Bug #12880 fixed - Graphics: issue a warning when transposing" 62/13362/2
Vincent COUVERT [Thu, 12 Dec 2013 15:50:17 +0000 (16:50 +0100)]
This reverts commit 61c2b7dc396d9c4336170b7cc6e70246a7b70738.

The warning should not be displayed when X and Y have the same size.

Change-Id: I96f96f2561dfb45b58f414f449ccd870af621333

scilab/CHANGES_5.5.X
scilab/modules/graphics/help/en_US/2d_plot/plot.xml
scilab/modules/graphics/macros/checkXYPair.sci
scilab/modules/graphics/macros/plot.sci

index ea0eef2..7a052b3 100644 (file)
@@ -184,8 +184,6 @@ Scilab Bug Fixes
 
 * Bug #12785 fixed - plot did not allow int data as first argument.
 
-* Bug #12880 fixed - Added a warning when transposing arguments of plot().
-
 * Bug #12882 fixed - Some help pages were not clear.
 
 * Bug #12910 fixed - Some typos fixed.
index 4f4778f..cc057b3 100644 (file)
@@ -2,11 +2,11 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA - Fabrice Leray
- *
+ * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at
+ * are also available at    
  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
  *
  -->
@@ -30,7 +30,7 @@
                 <term>x</term>
                 <listitem>
                     <para>a real matrix or vector. If omitted, it is assumed to be the
-                        vector <literal>(1:n)'</literal> where <literal>n</literal> is the number of curve
+                        vector <literal>1:n</literal> where <literal>n</literal> is the number of curve
                         points given by the <literal>y</literal> parameter.
                     </para>
                 </listitem>
@@ -49,7 +49,7 @@
                 <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>
+                        <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
         </para>
         <para>
             If <literal>y</literal> is a vector, plot(y) plots vector <literal>y</literal>
-            versus vector <literal>(1:size(y,'*'))'</literal>.
+            versus vector <literal>1:size(y,'*')</literal>.
         </para>
         <para>
             If <literal>y</literal> is a matrix, plot(y) plots each columns of
-            <literal>y</literal> versus vector <literal>(1:size(y,1))'</literal>.
+            <literal>y</literal> versus vector <literal>1:size(y,1)</literal>.
         </para>
         <para>
             If <literal>x</literal> and <literal>y</literal> are vectors, plot(x,y) plots
             rather than lines (see examples below).
         </para>
         <para>
-            <warning>
-                When it is necessary and possible, <literal>plot</literal> transposes <literal>x</literal> and <literal>y</literal>,
-                to get compatible dimensions; a warning is then issued. For instance,
-                when <literal>x</literal> has as many rows as <literal>y</literal> has columns.
-                Row vectors are always tranposed, and if <literal>y</literal> is square, it is never transposed.
-            </warning>
-        </para>
-        <para>
             <literal>y</literal> can also be a function defined as a macro or a
             primitive. In this case, <literal>x</literal> data must be given (as a vector or
             matrix) and the corresponding computation <literal>y(x)</literal> is done
     </refsection>
     <refsection>
         <title>Examples</title>
-        <programlisting role="example"><![CDATA[
-// x initialisation
+        <programlisting role="example"><![CDATA[ 
+// x initialisation 
 x=[0:0.1:2*%pi]';
 //simple plot
 plot(sin(x))
@@ -277,7 +269,7 @@ plot(sin(x))
             x=[0:0.1:2*%pi]';
             plot(sin(x))
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf()
 x=[0:0.1:2*%pi]';
 plot(x,sin(x))
@@ -286,7 +278,7 @@ plot(x,sin(x))
             x=[0:0.1:2*%pi]';
             plot(x,sin(x))
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf()
 //multiple plot
 x=[0:0.1:2*%pi]';
@@ -296,38 +288,38 @@ plot(x,[sin(x) sin(2*x) sin(3*x)])
             x=[0:0.1:2*%pi]';
             plot(x,[sin(x) sin(2*x) sin(3*x)])
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf()
 x=[0:0.1:2*%pi]';
-// axis on the right
-plot(x,sin(x))
-a=gca(); // Handle on current axes entity
-a.y_location ="right";
+// axis on the right 
+plot(x,sin(x)) 
+a=gca(); // Handle on current axes entity 
+a.y_location ="right"; 
 clf()
  ]]></programlisting>
         <scilab:image>
             x=[0:0.1:2*%pi]';
-            plot(x,sin(x))
+            plot(x,sin(x)) 
             a=gca();
-            a.y_location ="right";
+            a.y_location ="right"; 
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 x=[0:0.1:2*%pi]';
 // axis centered at (0,0)
 plot(x-4,sin(x),x+2,cos(x))
 a=gca(); // Handle on axes entity
-a.x_location = "origin";
-a.y_location = "origin";
+a.x_location = "origin"; 
+a.y_location = "origin"; 
 
 // Some operations on entities created by plot ...
 a=gca();
-a.isoview='on';
-a.children // list the children of the axes : here it is an Compound child composed of 2 entities
-poly1= a.children.children(2); //store polyline handle into poly1
+a.isoview='on'; 
+a.children // list the children of the axes : here it is an Compound child composed of 2 entities 
+poly1= a.children.children(2); //store polyline handle into poly1 
 poly1.foreground = 4; // another way to change the style...
 poly1.thickness = 3;  // ...and the tickness of a curve.
 poly1.clip_state='off' // clipping control
-a.isoview='off';
+a.isoview='off'; 
  ]]></programlisting>
         <scilab:image>
             x=[0:0.1:2*%pi]';
@@ -335,7 +327,7 @@ a.isoview='off';
             a=gca();
             a.x_location = "origin";
             a.y_location = "origin";
-
+            
             a=gca();
             a.isoview='on';
             a.children
@@ -344,9 +336,9 @@ a.isoview='off';
             poly1.thickness = 3;
             poly1.clip_state='off'
             a.isoview='off';
-
+            
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 
 //LineSpec and GlobalProperty examples:
 clf();
@@ -370,7 +362,7 @@ xdel(winsid())
             scf(4) // should remain blank
             plot(axfig3,[t ;t],[sin(t) ;cos(t)],'zdat',[1:2],'marker','d','markerfac','green','markeredg','yel')
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 //Data specification
 t=-%pi:0.1:%pi;
 size(t)
@@ -381,7 +373,7 @@ plot(t) // simply plots y versus t vector size
             size(t)
             plot(t)
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf(); // clear figure
 t=-%pi:0.1:%pi;
 plot(t,sin(t)); // plots sin(t) versus t
@@ -391,7 +383,7 @@ plot(t,sin(t)); // plots sin(t) versus t
             t=-%pi:0.1:%pi;
             plot(t,sin(t));
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf();
 t=[1     1     1     1
    2     3     4     5
@@ -405,10 +397,10 @@ plot(t) // plots each t column versus row size
             2     3     4     5
             3     4     5     6
             4     5     6     7];
-
+            
             plot(t) // plots each t column versus row size
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf();
 t=[1     1     1     1
    2     3     4     5
@@ -436,7 +428,7 @@ xtitle("sin(t)'' versus t''")
             2     3     4     5
             3     4     5     6
             4     5     6     7];
-
+            
             subplot(221)
             plot(t,sin(t)); // plots sin(t) versus t column by column this time
             xtitle("sin(t) versus t")
@@ -452,7 +444,7 @@ xtitle("sin(t)'' versus t''")
             plot(t',sin(t)')
             xtitle("sin(t)'' versus t''")
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 
 clf();
 t=[1     1     1     1
@@ -471,12 +463,12 @@ plot(x',t); // idem, x is automatically transposed to match t (here the columns)
             2     3     4     5
             3     4     5     6
             4     5     6     7];
-
+            
             x=[5 6 7 8]
             plot(x,t);
             plot(x',t);
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf()
 x=[5 6 7 8]
 
@@ -498,12 +490,12 @@ plot(x',[t [8;9;10;12]]');
  ]]></programlisting>
         <scilab:image>
             x=[5 6 7 8]
-
+            
             t=[1     1     1     1
             2     3     4     5
             3     4     5     6
             4     5     6     7];
-
+            
             // Only one matching possibility case : how to make 4 identical plots in 4 manners...
             // x is 1x4 (vector) and y is 4x5 (non square matrix)
             subplot(221);
@@ -515,7 +507,7 @@ plot(x',[t [8;9;10;12]]');
             subplot(224);
             plot(x',[t [8;9;10;12]]');
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf()
 
 t=[1     1     1     1
@@ -534,14 +526,14 @@ plot(t,[1;2;3;4]) // the same plot
             2     3     4     5
             3     4     5     6
             4     5     6     7];
-
+            
             //Special case 2
             // Case where only x or y is a square matrix
             //x : matrix (t) and y  : vector ([1 2 3 4])
             plot(t,[1 2 3 4]) // equivalent to plot(t,[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4])
             plot(t,[1;2;3;4]) // the same plot
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 t=[1     1     1     1
    2     3     4     5
    3     4     5     6
@@ -549,8 +541,8 @@ t=[1     1     1     1
 clf();
 
 // t is transposed : notice the priority given to the columns treatment
-plot(t',[1 2 3 4]) // equivalent to plot(t',[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4])
-plot(t',[1 2 3 4]') // the same plot
+plot(t',[1 2 3 4]) // equivalent to plot(t',[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4]) 
+plot(t',[1 2 3 4]') // the same plot 
  ]]></programlisting>
         <scilab:image>
             t=[1     1     1     1
@@ -558,12 +550,12 @@ plot(t',[1 2 3 4]') // the same plot
             3     4     5     6
             4     5     6     7];
             clf();
-
+            
             // t is transposed : notice the priority given to the columns treatment
-            plot(t',[1 2 3 4]) // equivalent to plot(t',[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4])
-            plot(t',[1 2 3 4]') // the same plot
+            plot(t',[1 2 3 4]) // equivalent to plot(t',[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4]) 
+            plot(t',[1 2 3 4]') // the same plot 
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf();
 // y is a function defined by..
 // ..a primitive
@@ -573,7 +565,7 @@ plot(1:0.1:10,sin) // equivalent to plot(1:0.1:10,sin(1:0.1:10))
         <scilab:image>
             plot(1:0.1:10,sin)
         </scilab:image>
-        <programlisting role="example"><![CDATA[
+        <programlisting role="example"><![CDATA[ 
 clf();
 // ..a macro:
 deff('[y]=toto(x)','y=x.*x')
index a7c833d..6d1eef6 100644 (file)
@@ -57,11 +57,8 @@ function [X,Y]=checkXYPair(typeOfPlot,x,y,current_figure,cur_draw_mode)
         X=x;
         Y=y;
 
-        XScal = isscalar(X);
-        YScal = isscalar(Y);
-
-        if size(X,1)==1 & ~XScal, X=X', warning(_("Transposing row vector to get column vector")), end; // If one of the vectors is a row, transpose it,
-        if size(Y,1)==1 & ~YScal, Y=Y', warning(_("Transposing row vector to get column vector")), end; // but no need to transpose scalars.
+        if size(X,1)==1, X=X', end;  // si l'un des vecteurs est une ligne
+        if size(Y,1)==1, Y=Y', end;  // on le transpose.
 
         if (size(X)==[0 0])
             ok=%F
@@ -90,14 +87,9 @@ function [X,Y]=checkXYPair(typeOfPlot,x,y,current_figure,cur_draw_mode)
 
             return;
         end
-
         if (size(X,2)==1) & (size(Y,2)==size(X,1))
-            // X is a column vector and Y has as many columns as X has rows.
-            // Y cannot be a square matrix here, because it would have fallen in the previous case (above) and returned.
-            if ~YScal then
-                warning(_("Transposing data matrix to get compatible dimensions"));
-                Y=Y';
-            end
+            // X is a vector
+            Y=Y';
             ok=%T;
 
             return;
@@ -117,13 +109,9 @@ function [X,Y]=checkXYPair(typeOfPlot,x,y,current_figure,cur_draw_mode)
         if or(size(Y) == 1) then
             if size(X,1) == size(Y,1) then
                 y=Y;
-            elseif size(X,1) == size(Y,2) & ~YScal then
-                // Y has as many columns as X has rows. Transpose Y to fit X.
-                warning(_("Transposing data matrix to get compatible dimensions"));
+            elseif size(X,1) == size(Y,2) then
                 y=Y(:);
-            elseif size(X,2) == size(Y,1) & ~YScal & ~XScal then
-                // Y has as many rows as X has columns. Transpose Y to fit X.
-                warning(_("Transposing column vector to get row vector"));
+            elseif size(X,2) == size(Y,1) then
                 X=X';
                 y=Y(:);
             elseif size(X,2) == size(Y,2) then
@@ -152,3 +140,4 @@ function [X,Y]=checkXYPair(typeOfPlot,x,y,current_figure,cur_draw_mode)
 
     // end of checkXYPair
 endfunction
+
index 6265ebc..5b7621b 100644 (file)
@@ -9,21 +9,20 @@
 
 function plot(varargin)
     // Try to build a new better parser that could manage things like:
-    // plot(x,y,'X',1:10); // where X stands for Xdata (Matlab recognizes
-    //it and treats it well...)
+    // plot(x,y,'X',1:10); // where X stands for Xdata (Matlab recognize
+    //it and treats it well...
 
     [lhs,rhs]=argn(0);
 
     if ~rhs
         //LineSpec and PropertySpec examples:
         t = 0:%pi/20:2*%pi;
-        tt = t';
         clf();
         drawlater();
         subplot(211);
-        plot(tt, sin(tt), "ro-.", tt, cos(tt), "cya+", tt, abs(sin(tt)), "--mo");
+        plot(t,sin(t),"ro-.",t,cos(t),"cya+",t,abs(sin(t)),"--mo");
         subplot(212);
-        plot([t ;t],[sin(t); cos(t)],"xdat",[1:2]);
+        plot([t ;t],[sin(t) ;cos(t)],"xdat",[1:2]);
         drawnow();
         return;
     end
@@ -246,11 +245,10 @@ function plot(varargin)
             [X,Y] = checkXYPair(typeOfPlot,ListArg(xyIndexLineSpec(i,1)),ListArg(xyIndexLineSpec(i,2)),current_figure,cur_draw_mode)
         else
             if or(size(ListArg(xyIndexLineSpec(1,2)))==1)  // If this is a vector
-                X=(1:length(ListArg(xyIndexLineSpec(1,2))))'; // insert an abcsissa vector of same length,
+                X=1:length(ListArg(xyIndexLineSpec(1,2))); // insert an abcsissa vector of same length,
             else                                  // if this is a matrix,
-                X=(1:size(ListArg(xyIndexLineSpec(1,2)),1))'; // insert an abcsissa vector with same size
+                X=1:size(ListArg(xyIndexLineSpec(1,2)),1); // insert an abcsissa vector with
             end
-            // In both cases (matrix/vector), transpose it now so no warning is issued in checkXYPair().
             [X,Y] = checkXYPair(typeOfPlot,X,ListArg(xyIndexLineSpec(1,2)),current_figure,cur_draw_mode)
         end
 
@@ -450,3 +448,5 @@ function plot(varargin)
     ResetFigureDDM(current_figure, cur_draw_mode)
 
 endfunction
+
+