1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570
|
Version 0.41 Ven 19 mar 2010 16:48:20 CET
-----------------------------------------
Modern toolbox packaging to be Atoms-compatible.
Now the call to plotlibmode should be in the
user's .scilab.
Added a plotlib demo in the Scilab's demo menu.
Added the possibility of setting default properties
thru the 0 handle :
set(0,'defaultfigurecolor',[1 1 1]);
works for any property that actually makes sense for
the given object (for the moment Axes or Figure).
Version 0.4 (Jeu 18 mar 2010 09:23:35 CET)
------------------------------------------
Many improvements :
A Plotlib graphic handle is nowt a Scilab native graphic handle
encapsulated in a mlist of type "pltlibH". By using the overloading features
of Scilab, these two kinds of handles can be read or changed transparently by
using the set and get macros. The native Scilab graphic properties of the
encapsulated handle are also transparently read or changed by these two macros.
The default display function %pltlibH_p for plotlib handles just gives the
type of the handle. To display and/or get a single property, you can use the
get function or the . field operator. Idem for the set operation :
h=surfl()
z=get(h,'ZData');
z=h.ZData;
set(h,'CData',z);
h.CData=rand(z);
You can get more than one property value at a time, by using a vector of
strings, or get all properties by omitting the property. In both cases,
get returns a struct with corresponding fieldnames.
h=pcolor()
get(h,['FaceColor','EdgeColor'])
get(h)
See the Plotlib help "Matlab-Like Plotting Library" chapter in Scilab
help menu.
Caveat : The
Version 0.3
-----------
Revamped all the internal data fluxes. Adopted the Matlab system
for the axes and leaf entities. Many properties implemented.
Doc to be updated.
Users of svn can stay in tune with the following url
svn://marguerite.lmac.utc.fr/usr/local/svnrepos/xmllab/trunk/XMLlab/noarch/plotlib
Version 0.21
------------
Second draft with english help files in xml. For Scilab < 5 the old plain text help
files are used.
Version 0.2
-----------
First draft of the plotlib working with the new graphics
Version 0.198
-------------
Idem with the Pos driver.
Version 0.197
------------
Improvements to allow the complete use of the plotlib
with the GIF and PPM driver. Be aware that with theses drivers
there is no multi-window manadgement. The recommended version
of Scilab is Scilab 4.1.
Example :
driver GIF
xinit graph.gif
subplot(2,2,1); trisurfl;
subplot(2,2,2); pcolor;
subplot(2,2,3); trimesh;
subplot(2,2,4); loglog; title('loglog plot')
xend
Version 0.196
-------------
Slight changes for Scilab 4.0 compatibility.
Version 0.195
-------------
Added new properties :
'ticksX','on|off|none'
'ticksY','on|off|none'
in 2d plots : used to turn on or off the ticks
and ticks labels on X and Y axis.
Version 0.194
-------------
Added a new function :
bar : draws vertical bargraph. Type help bar to
see usage and examples.
Changed the plotlib0nnn-install folder to "plotlib" (will
keep this for future versions also). The version number
can be found as usual in the file macros/VERSION.
Version 0.193
-------------
Fixed a problem with font size calculation by the function
xstringl with Helvetica font under windows. Update of the
README file to explain the new location of the .scilab
startup file since Scilab-3.1-rc1.
Version 0.192
-------------
Implement some changes initially devoted to the future
0.2 release. The plotlib still uses the Old graphics
mode.
1-Better legends (labels remain centered when resizing the window,
and spacing is better computed).
2-A new low level function for better Matlab compatibility
fill(X,Y,C)
draw some 2D polygons arranged in columns : i'th polygon
has coordinates X(:,i),Y(:,i) and color(s) C(i) or C(:,i)
if each vertex has a color (to do e.g. interpolated shading).
3-New properties related to shading (2D and 3D)
but you can now use the following properties/values :
'facecolor','flat'
'facecolor','interp'
-> changes the shading type but does not change the
edgecolor. You can now have interpolated shading+edges
(type trisurfl for an example).
The 'shading','interp' property/value pair is still valid
and is equivalent to
'facecolor','interp','edgecolor','none'
The 'shading','faceted' property/value pair is still valid
and is equivalent to
'facecolor','flat'
The 'shading','flat' property/value pair is still valid
and is equivalent to
'facecolor','flat','edgecolor','none'
4-Other properties related to shading (3D)
For macros : surf,trisurf,surfl,trisurfl
'backfacecolor',[r,g,b] -> the backfaces are painted with color [r,g,b]
'backfacecolor','none' -> the backfaces have the same color as the front
faces
'backfaceculling','yes|no' -> backfaces are not painted
For macros : surfl,trisurfl
'backfacelighting','lit' -> equivalent to 'backfacecolor','none'
'backfacelighting','unlit' -> equivalent to 'backfacecolor',[r,g,b]
where [r,g,b] is the "mean" color of the RGB colormap.
5-Other changes
New 'jet' value for the colormap property/function
"colormap jet"
Version 0.191
-------------
Slight modifications for XMLlab
Version 0.19
------------
Small changes to fit to the now default "new" figure
style (old figure style is selected in loader.sce).
Version 0.18b1 (6/3/2003)
-------------------------
New installation system, with the two scilab scripts
builder.sce/loader.sce (see the README file)
Version 0.17 (18/7/2002)
------------------------
Bug fixes, and some new features (see the homepage)
Version 0.17b3 (20/02/2002)
----------------
A few bug fixes (see the homepage).
Version 0.17b2 ()
-----------------
A few bug fixes (see the BUGS files)
Better error handling in the generation of the library.
Now the 'plotlib' variable, if it exists, is unprotected
and then cleared before the call to 'genlib'.
Version 0.17b1 (Thu Mar 15 15:57:47 CET 2001)
---------------------------------------------
This version uses many of the new features of Scilab 2.6.
The state will remain 'beta' until the documentation
will be ready...
MAJOR ISSUES
- New colorbar positions (left, right, top, bottom (or bot))
- plot(x,f) where f is a function with the syntax y=f(x)
or [x,y]=f(t);
- New values for the color/marker string in 2D plots :
the strings '--' and '-.', which can be combinated with
other usuals characters, allow to make respectively dahsed
and dash-dot curves. Same behavior for plot3 (curves in 3D).
- New 'axis' property values in 3D functions (plot3,mesh, surf, ...) :
* 'equal (isometric plot)
* 'vis3d' (isometric/non expanded plot)
* 'box' (only the box without captions)
* 'trihedral' (only the 3 small x/y/z axis)
- New allowed values for the 'view' property. When you specify
'view',V
if V is a 2 x N matrix, then the graph is being represented
successively for the view points V(:,i), i=1:N.
- New 'axis' property values in 2D plot functions (plot, pcolor, tripcolor)
* 'left' (the y axis is displayed on the left)
* 'right' (the y axis is displayed on the right)
* 'center' (the x and y axis cross at the center of the plot box)
* 'origin' (the x and y axis cross at the (0,0) point)
- New property for 2D plots 'grid', with the possible values
* 'on' or 'off'
* a 3-vector giving the color in RGB coordinates.
- Support of list arguments in plot, mesh, ... Example :
--> myOptions=list('background',[0 0 1],'axis','equal');
--> t=0:10; plot(t,sin(t),myOptions)
the list is expanded while the argument list is parsed, so
that the above line is equivalent to
--> t=0:10; plot(t,sin(t),'background',[0 0 1],'axis','equal')
MINOR ISSUES
- Now the 'xlabel', 'ylabel' and 'title' can be used as properties
in 2D plot functions. The 'title' property can be used in 3D
functions also.
- The font size used for tick labeling and labels now depends on
the window size (it already depended on the subplot state).
Version 0.16 (2000/12/17) bug fixes
-----------------------------------
Essentially bug fixes (installation under Windows
and pb with colormaps, see the BUGS file)
Version 0.15 (2000/7/7) new functions + man pages
-------------------------------------------------
New functions :
- pcolor() and tripcolor() : pseudo-color 2D
plot of rectangular or non-rectangular or triangulation-based
patches. These new function will support interpolated shading
with the next version of Scilab
- whitebg() : to set the default color scheme of figures. This
function existed for a while, but was not documented in the
man pages (now it is).
- caxis() : to set the color scale of pseudocolor plots
- colormap() : to set the colormap of pseudocolor plots. Was
mentionned in the man list but the man page was absent (this
has been fixed)
various Improvements :
- the man pages for trimesh/trisurf/trisurfl has been
improved. Now calls like trimesh() produce a demo plot,
where the data are loaded from the file
SCI/macros/plotlib/tridem.dat
- A few bugs fixes
Version 0.14 (2000/5/18) automated installation
-----------------------------------------------
Automated installation via script
files.
Version 0.13 (04/05/2000) support for interpolated shading
----------------------------------------------------------
- Added the property "hidden" for the mesh macro
The possible values are 'on' and 'off'. This allows to do fast wire frame
rendering
- Added support for the modified version of plot3d1 (interpolated shading)
In the macros surf, surfl, trisurf,
the property 'shading' can now take the value 'interp'. If your version
of plot3d1 does not support interpolated shading then an error message is
given (should it be a warning ?).
To allow interpolated shading in plot3d1, you need to recompile scilab by
patching some files :
SCI/interf/matdes.f
SCI/routines/graphics/Plo3d.c
SCI/routines/graphics/Rec.c
SCI/routines/graphics/RecLoad.c
SCI/routines/graphics/RecSave.c
The patched/enhanced files can be find at the URL
http://www.dma.utc.fr/~mottelet/plotlib-related/patches
All the added code is driver-independent and so
the modifications apply for any driver (X11, Pos,
Xfig, GIF, ...). For those who are familiar with
the source, all the modification are quoted and
well commented (to find the modified stuff, look
for the string "polpoth" -that's my nickname- in
the above mentioned files).
The code is not optimal, but the rendering
speed is more than correct, compared to what could
have been done with a sci macro.
Version 0.12 (04/02/2000) support for triangular mesh
-----------------------------------------------------
- Added 3 new functions, for plotting surfaces based on a triangulation : trimesh,
trisurf and trisurfl. The syntax is like in Matlab, and all the property/value
settings are the same as for mesh, surf and surfl.
Version 0.11 (01/13/2000)
-------------------------
- I added 'xlabel', 'ylabel ' and 'zlabel' properties for surf, mesh, surf and plot3d.
Version 0.1 (10/14/99) : a bunch of new stuff
---------------------------------------------
- Many rewriting and bug fixes, a big effort on documentation (help .cat files). Now
each function is in a separate .sci file. The new release makes use of global variables
so you have to upgrade to scilab 2.5
- New functions (now some help can be obtained for all functions)
legend() (for 2D plots)
xlabel(), ylabel(), title()
3D enhanced functions :
plot3(), mesh(), surf(), surfl()
with the classical Matlab syntax, and with the possibility of giving
the surface values by a function (type help mesh).
'colorbar' (a property name for the above functions)
colormap()
to change the colormap of 3D plots.
Version 0.05 (04/22/99) : new functions
---------------------------------------
- I have added some functions to make plots with a log scale
semilogx()
semilogy()
loglog()
The syntax is the same as the function plot() i.e. try the commands
w=logspace(-1,2,500);
s=%i*w;
g=1../(s+1); g2=1../s;
loglog(w,abs(g),w,abs(g2))
- I have also added the function
gcf()
which returns the number of the current active window.
Version 0.04 (03/30/99) : new functions
---------------------------------------
- I have added a hold() function. Can be used with the arguments `on' or 'off' like this
hold on
hold off
or without arguments
hold()
in this case the hold state toggles between on and off.
- xlabel(string)
Puts a label below the X - axis. You may wonder why I did not do something
for the Y - axis : the problem is that the angle modifications which are posssible
in the xstring macro affect *each* character, and not the whole string ! The result
is unreadable (to me). Until now, I dit not find a solution.
- axis()
This function in only callable without arguments. The call
vect=axis()
returns the current axis limits with the Matlab convention i.e.
vect=[xmin xmax ymin ymax]
Version 0.03 (03/24/99) : some crucial ameliorations (printing)
---------------------------------------------------------------
- The printing problem has been fixed. Now printing and exporting in
b/w mode produces correct results.
- Pretty axis graduations is now the default mode. It can be deactivated
by an 'axis','tight' clause in a plot command.
- New markers 't' for trefoil and 'f' for filled diamond
- New functions :
- delete() or delete(win) for properly deleting a window.
- title(string) to add a title to the graph.
Version 0.02 (03/23/99) : many bug corrections and ameliorations.
-----------------------------------------------------------------
- Matlab look and feel with a ``fancy frame'' around the plot.
- No need to call initCmap() any more at startup. New colors are added
automatically with the scilab command ``addcolor()''. Anyway you still
have to call graphinit() once at startup (see below)
- New syntax for graphinit :
graphinit()
graphinit('whitebg')
graphinit('blackbg')
The choice 'whitebg' or 'blackbg' determines the default background/foreground
combination, black/white for 'blackbg' and white/black for 'whitebg'. The switch
can be done later with the functions whitebg() and blackbg()
- New functions (with call example)
fig() : creates/activates a window
fig('background',[0 0 1],'foreground',[1 1 0])
fig('colormap','hot')
fig('colormap',[0 0 0;1 1 1])
fig(winNum)
fig(winNum, 'background',[0 0 1],'foreground',[1 1 0])
Properties can be changed after window creation
Version 0.01 (03/19/99) : initial release
------------------------------------------
Don't expect all this to work if you don't call graphinit()
once at the beginning of your session. You have also to call
initCmap() each time you create a new window in order to get
the correct colors when you specify it in plot() call.
Like in matlab the function plot() can accept any number of input arguments. The
usual way is to use pairs or triples. Here is an example session :
graphinit()
initCmap()
t=linspace(0,2*%pi);
plot(t,cos(t),t, sin(t))
plot(t,cos(t),'r',t,sin(t)) : red line for the cos
plot(t,cos(t),'ro',t,sin(t),'y^-') : red dots for the cos and yellow
triangles + solid line for the sin
plot(t,[cos(t);sin(t)]) : color cycling is like in matlab
plot(cos(t),sin(t),'axis','equal') : example of property/value setting
plot(cos(t),sin(t),'axis',[0 1 0 1]) : another example the axis vector is
[xmin xmax ymin ymax]
plot(t,cos(t),'3r') : red line, set the linewidth to 3.
Linewidth up to 9 are allowed.
You can also experiment the subplot() function :
subplot(2,1,1); plot(t,cos(t))
subplot(2,1,2); plot(t,sin(t))
You can also use the clf() function to properly clear a graphic
window.
I have made a big effort to produce explicit error messages when the function
detects something wrong in the argument list, so don't be affraid to test
any combination of couple, triples and property/value pairs that seems
correct. Feel free to report me any bugs and/or sugggestion
////////////////////////////////////////////////////////////////////////////////
//
// available markers // available colors (in cycling order)
// //
// 'o' circle // 'y' yellow
// '+' plus // 'm' magenta
// '*' star // 'c' cyan
// 'd' diamond // 'b' blue
// '^' up triangle // 'g' green
// 'v' down triangle // 'r' red
// '.' dot // 'w' white
// // 'k' black
// //
////////////////////////////////////////////////////////////////////////////////
//
|