Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.0 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> Graphics > 2d_plot > champ

champ

2D vector field plot

Syntax

champ(x, y, fx, fy, [arfact, rect, strf])
champ(x, y, fx, fy, <opt_args>)

Arguments

x, y

two vectors which define the grid.

fx

a matrix which describes the x component of the vector field. fx(i,j) is the x component of the vector field at point (x(i),y(j)).

fy

a matrix which describes the y component of the vector field. fy(i,j) is the y component of the vector field at point (x(i),y(j)).

<opt_args>

This represents a sequence of statements key1=value1, key2=value2,... where key1, key2,... can be one of the following: arfact, rect, strf (see below).

arfact

an optional argument of type real which gives a scale factor for the display of the arrow heads on the plot (default value is 1.0).

rect

a vector rect=[xmin, ymin, xmax, ymax] which gives the boundaries of the graphics frame to use.

strf

a string of length 3 "xyz" which has the same meaning as the strf parameter of plot2d. The first character x has no effect with champ.

Description

champ draws a 2D vector field. The length of the arrows is proportional to the intensity of the field.

If you want colored arrows with the color of the arrows depending on the intensity of the field, set gce().colored = "on".

Enter the command champ() to see a demo.

Be cautioned about the fact that using meshgrid function before using champ requires adjustment. For more details, see the last example below.

Examples

// using rect as plot boundaries
champ(-5:5,-5:5,rand(11,11),rand(11,11),rect=[-10,-10,10,10],arfact=2)
// using (x,y) to get boundaries
clf()
champ(-5:5,-5:5,rand(11,11),rand(11,11),2,[-10,-10,10,10],"021")
// using meshgrid to get fx and fy
clf()
x = linspace(-1,1,30);
y = linspace(-1,1,30);
[X,Y] = meshgrid(x,y);
fy = 2.*Y;
fx = 2.*X;
champ(x,y,fx',fy'); //here we have transposed fx and fy

See also

  • fchamp — direction field of a 2D first order ODE
  • xarrows — draw a set of arrows in 2D or in 3D.
  • Arrowed polyline — description of the Polyline entity properties
Report an issue
<< Sgrayplot 2d_plot champ1 >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:49:20 CET 2020