/usr/lib/R/library/lattice/NEWS is in r-cran-lattice 0.20-0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 | Changes in lattice 0.20
=======================
o The primary goal of the 0.20 series is to further improve
documentation, building up to an eventual 1.0 release. Specific
major changes are given below.
o Use dev.hold()/dev.flush() introduced in R 2.14.0 for smoother
displays and transition.
o It is now easier to use raster images in levelplot() by specifying
top-level argument 'useRaster=TRUE'.
o 'pos' can now be a vector in ltext(), just as it can in text().
o Explicit components in 'colorkey' (for levelplot()) to specify
graphical parameters of boundary and tick marks/labels.
o "spline" added as a possibly 'type' in panel.xyplot(), following a
suggestion from Patrick Breheny.
Changes in lattice 0.19
=======================
o The primary goal of the 0.19 series is to improve documentation and
fix some obscure but long-standing bugs, building up to an eventual
1.0 release. Specific major changes are given below.
o Added new arguments 'grid' and 'abline' in panel.xyplot().
o Added a "panel.background" setting.
o Restructured storage of plot-specific information, fixing bug
reported in
https://stat.ethz.ch/pipermail/r-help/2007-October/143567.html
o Added a CITATION file.
o Added a new "axis.text" setting.
o Added the option to scale data inside panel.3dscatter() and
panel.3dwire() rather than assuming ther are already scaled. This
may be helpful for use in user-written panel functions, with
(additional) data specified in the original scale.
o 'varnames' can now be expressions in splom()/parallel().
o Added support for 'xlab.top' and 'ylab.right' arguments.
o Improved axis labelling in splom(), including support for date-time
data.
o panel.pairs() now passes arguments i and j to (sub)panel and
diag.panel functions.
o Default prepanel functions are now user-settable through
lattice.options()
o par.[main|sub|xlab|ylab].text parameter settings are more powerful.
o Added support for 'just' component in draw.key() to allow
justification of legend placement.
o Graphical arguments in panel.superpose can now be lists.
o Added support for raster colorkeys.
o Added new 'height' component for keys.
o Improved vectorization of graphical parameters in panel.bwplot.
o Expanded trellis.grobname() and used it to provide a name for all grobs.
o New panel.spline() function.
bug fixes
---------
o More realistic check for equispaced grid in
panel.levelplot.raster().
o Improved partial matching of component names in 'key' and 'scales'.
o xyplot.ts() now allows graphical parameters to be given as vectors
(inside a list) for each series. Passes lists to panel.superpose.
o panel.axis() now does NOT draw tick marks if 'ticks = FALSE'.
Changes in lattice 0.18
=======================
o Hosting of the upstream sources has moved to R-forge. This allows,
among other things, the use of the R-forge issue tracker.
o New xyplot.ts method, merging versions previously available
in latticeExtra and zoo (thanks to the efforts of Felix Andrews)
o An argument 'group.value', containing the level of the group, is now
passed by panel.superpose to the 'panel.groups' function
o Specifying 'auto.key' as a list now produces a legend even in the
absence of 'groups', provided a 'text' component has been included
o The 'layout' argument now accepts NA for number of columns or rows.
o Scale limits 'xlim' & 'ylim' can have one NA to fix only one side.
o Date and POSIXt scales now use new methods to calculate axis ticks,
and now respond to the 'tick.number' component of 'scales'.
o 'panel.qqmath' gains an argument 'tails.n' for exact data on tails.
Changes in lattice 0.17
=======================
new features
------------
o New function simpleTheme() for creating nested lists without
specifying the nesting structure (which is guessed)
o Support for lattice.option(print.function) which is the function
actually used when print.trellis() is called
o New argument 'box.width' wherever 'box.ratio' is available (e.g.,
panel.bwplot, panel.barchart, etc.), to specify absolute thickness
(of boxes, bars, etc.)
o New panel.refline() function, same as panel.abline(), but with
default parameters from the "reference.line" settings.
o parallel() has a new 'horizontal.axis' argument; when FALSE, the
axes are vertical and are stacked side by side.
o densityplot() now supports weights.
o dotplot.table() etc. allow change of orientation (horizontal=FALSE).
o New function panel.identify.cloud() to interactively label
three-dimensional scatterplots.
o Added support for notches in panel.bwplot (based on patch from Mike
Kay)
o New panel function panel.smoothScatter (relocated from Bioconductor
package geneplotter)
o Added German translations (contributed by Chris Leick)
o reordered documentation to make PDF manual more readable
bug fixes
---------
o Make translations available (they were never actually installed before)
Changes in lattice 0.16
=======================
changes in behaviour
--------------------
o 'x' in dotplot(~x, data) etc now gets names(x) set to
rownames(data). Update: this feature has now been removed, as the
resulting behaviour is undesirable for bwplot()
o the 'call' component of a "trellis" object is set to a better value
than before (at least for the methods in lattice). One consequence
is that update.default() now works for cases in which
update.trellis() doesn't (i.e. those where data packets need to
change)
o barchart.table now has an 'horizontal' argument
o levelplot.matrix() now allows specification of column labels or
positions through arguments 'row.values' and 'column.values'
o width calculation for rectangles changed for levelplot() when 'x',
'y' are factors; they are set to 1, rather than trying to
accomodate unequally spaced 'x' and 'y' values. This is important
when there are empty levels
o dimnames() of a "trellis" object is now settable (this allows
changing names and levels of conditioning variables)
o labels ('xlab', 'main', etc) can now be character vectors. In
their list form, they support more graphical parameters as well as
finer positioning (justification, rotation, etc.)
o 'strip.left' gets called with 'horizontal = FALSE', so
'strip.left = strip.default' now works as expected
Changes in lattice 0.15
=======================
(Some of these are also available in updated 0.14 versions)
new features
------------
o Default panel functions are now settable options
o Limits of a parallel coordinates plot can now be controlled via
functions
o New 'panel.aspect' argument for cloud and wireframe
o Better support for factors in cloud and wireframe
o More flexible placement of legends with x, y and corner. In
particular, corner can have fractional values, and (x, y) can refer
to a position w.r.t. two potential bounding boxes depending on
lattice.getOption("legend.bbox") ('full', meaning full plot region,
or 'panel', meaning the subregion containing panels and strips.
The default is 'panel', which is a change in behaiour)
o trellis.focus() now allows choosing panels interactively.
o New interaction functions panel.identify.qqmath() and
panel.brush.splom()
o There is now an error handling mechanism for panel functions. By
default, errors in panel functions no longer stop execution. See
?print.trellis for details.
changes in behaviour
--------------------
o non-numeric data no longer cause warnings in bwplot
o the default padding between components has been changed to
0.5 "chars"
Changes in lattice 0.14
=======================
new features
------------
o support for custom function that determines packet-panel
correspondence. This could be used to fill panels vertically
rather than horizontally, or to split layout over two or more
pages, etc. (see ?packet.panel.default)
o support for customizable functions for axis drawing and tick/label
determination
o various accessor functions available to panel, strip, axis (etc)
functions, e.g. panel.number() and packet.number()
o arguments to lattice.options and print.trellis arguments can now be
attached to trellis objects (as parameter settings already could)
through high level arguments 'lattice.options' and 'plot.args'
o llines, lpoints and ltext are now generic functions
o The high level 'key' argument can now have an argument called
'reverse.rows' to reverse the order of rows. This applies to
'draw.key', 'auto.key' and 'simpleKey' as well.
o extended interpretation of 'breaks' in histogram()
o matrix methods for 'splom' and 'parallel' (whose absence was an
oversight)
o support of 'alpha' argument in labels and legends, which were
previously missing for no good reason
o panel.grid() now allows 'h' and 'v' to have negative values other
than -1, in which case '-h' and '-v' will be used as the 'n'
argument to pretty() when determining line locations
changes in behaviour
--------------------
o panel function is no longer given arguments panel.number and
packet.number (see above for alternatives)
o panel.identify() now has a more useful return value (selected
subscripts)
o trellis.panelArgs() without any arguments should return meaningful
results while a "trellis" object is being printed, and thus should
be usable inside panel or axis functions.
o For formulae of the form y1 + y2 ~ x1 + x2 + x3, the order of
levels of the artificially created grouping variable is now more
'intuitive'
Changes in lattice 0.13
=======================
new features
------------
o high level generics like 'xyplot' now have both 'x' and 'data' as
arguments. The only implication for S3 methods is that they will
have to include the 'data' argument even if they are unused (as
they should be when 'x' is not a formula). The reason for doing
this is to encourage S4 methods using multiple dispatch where 'x'
is a formula and 'data' is some other data source.
o R messages are now translatable.
o French translations courtesy of Philippe Grosjean.
o instead of ignoring it as before, 'panel.xyplot' and
'panel.densityplot' now deal with a 'groups' argument appropriately
by calling 'panel.superpose'. Consequently, the default of 'panel'
in 'xyplot' etc does not need to be conditional on 'groups'.
o added 'lineheight' as a graphical parameter where appropriate.
o added a 'grid.pars' setting for arbitrary grid parameters to be
set initially via gpar().
o For a shingle 'x', 'as.character(levels(x))' creates meaningful
labels.
o Shingle levels can now be printed by strip.default.
o The strip function, like the panel function, is now passed
arguments 'packet.number' and 'panel.number' (although the default
strip function makes no use of it).
o 'panel.superpose' has new argument to make it bahave like in S-PLUS
(interpretation of 'type'). This makes 'panel.superpose.2'
unnecessary, although it's still available.
o Added wrappers lrect, lpolygon (and panel.rect, panel.polygon)
changes in behaviour
--------------------
o evaluation scope: standard functions with a formula based interface
('lm' etc) look for variables in the formula (that are not found in
'data') in the environment of the formula. This was done
inconsistently for lattice functions, which has been fixed.
o 'summary.trellis' is now more informative
o calls with explicit 'formula=' no longer work (used to give a
warning before)
o The 'bar.fill' and 'superpose.fill' settings have been replaced
with 'plot.polygon' and 'superpose.polygon' respectively, which are
more consistent with other names.
o Default of 'data' changed from 'parent.frame()' to NULL. This has
to do with reasonable non-standard evaluation rules, and probably
needs some more thought.
o Default Trellis settings (a.k.a. theme) changed. See
?trellis.device for details
bug fixes
---------
o NA-handling
o ltext now supports more 'adj' values
o scales$y$alternating now counts row numbers from top if as.table = TRUE
o miscellaneous improvements in strip.default
Todo (planned)
--------------
o change panel.qq so that most work gets done there
Changes in lattice 0.12
=======================
improvements
------------
o panel.bwplot has a new 'stats' argument, which is a function used to
calculate the statistics in the box and whisker plot. Defaults
to boxplot.stats, which was the hard-coded value earlier.
o panel.bwplot has been re-implemented. Faster, avoids direct grid
calls
o panel.densityplot now allows more flexible specifications of
'plot.points', specifically, points can be jittered (the new
default) or indicated by a `rug'.
o (more) changes in NA-handling.
o panel.superpose handles type='g' itself so that the grid doesn't
get repeated for every group.
new features
------------
o All high level functions are now generic. This change should be
mostly transparent, but there may be some unforeseen side-effects.
S3 generics and methods are used (this may change at some point,
but not in the near future). In particular, usage where the first
argument is not actually a formula has now been formalized and is
handled via method dispatch rather than the clumsy hacks in place
earlier.
o The first argument of high level lattice functions has been renamed
from 'formula' to 'x'. This is related to the fact that these
functions are now generic, and is intended to avoid long-term
confusion. The first argument is usually not named, so this should
not cause many problems. If the name 'formula' is explicitly
supplied, it will be used with a warning (as long as there is no
argument named 'x') for now, but not in future versions of lattice.
o aspect='xy' is now allowed when relation='free'
o A new function make.groups (present in S-PLUS) has been added.
o there's now panel.rect and lrect (similar to the base function
rect)
o print.trellis has a 'draw.in' argument that can be used to specify
a grid viewport to draw the plot in.
o strips can now be drawn on the left (as well as top) of a panel.
This is useful for short wide panels, e.g. time series.
o 'Date' objects are recognized and axis labels formatted accordingly
(not heavily tested)
changes in behaviour
---------------------
o qqmath has been considerably revamped, primarily to allow grouped
displays (the older implementation would not have allowed that even
with a custom panel function). In particular, the (pre)panel
function(s) now get the raw data as opposed to already computed
quantiles. Some old code may stop working.
o as a consequence of the above, panel.qqmath, panel.qqmathline etc
have been rewritten and have different argument lists
o tmd has been rewritten (mostly to deal with qqmath objects), but
this shouldn't be user-visible.
o densityplot defaults to showing points with random jitter.
o arguments panel.number and panel.counter, passed to panel functions
that have those (or the ...) argument(s) have been renamed to
'packet.number' and 'panel.number', which are more in line with
standard Trellis jargon.
bug fixes
---------
o identification of when 'type' should default to "density" was buggy
(inapprpriate rounding)
Changes in lattice 0.11
=======================
improvements
------------
o panel.superpose.2 (which replicates behaviour of panel.superpose in
S-PLUS) revamped, with new features to boot.
o panel.identify improved
o larrows improved, slightly different features.
o [xyz]lab in cloud / wireframe can now be grobs, and honors a 'rot'
component for rotation (e.g., zlab = list(rot = 90))
new features
------------
o some finer controls added to parallel (actually panel.parallel)
o trellis.last.object(...) now behaves like
update(trellis.last.object(), ...))
o "trellis" objects now have a plot method that's essentially an
alias to the print method
o new function 'current.panel.limits' to retrieve native scales of
current panel (only in later versions)
changes in behaviour
---------------------
o behaviour of auto.key = TRUE now function specific
o auto.key list now allows a 'text' component
o defaults of several standard arguments now taken from
lattice.options()
o type='g' now calls panel.grid(h = -1, v = -1) rather thanjust
panel.grid()
o NA-handling (may have undesirable effects)
bug fixes
---------
o several minor fixes
Changes in lattice 0.10
=======================
improvements
------------
o relation="free" and "sliced" now work for factors (at least, as
well as can be expected)
o the code that constructs the layout of a lattice plot (in the print
method for trellis objects) has been completely rewritten. This is
mostly transparent to the user, but as a side effect, it is now
possible to control the details of the layout (things like the
amount of padding around the plot, the gap between tick marks and
labels) via the trellis settings "layout.heights" and
"layout.widths".
o col.regions and colorkey in levelplot and wireframe now honour
settings in effect when the object is printed, and not when the
object was created.
o xlab, ylab, main and sub can now be grobs
o datasets get separate documentation, contributed by Kevin Wright
new features
------------
o lattice.options(), similar to options(), to control various aspects
of lattice plots. This is mostly for easier code maintainance, but
can be useful for the user too.
o API now supports alpha-transparency (actual support is device
dependent) where appropriate (some cases might have been missed,
and reports of omissions would be appreciated).
o API for interacting with and enhancing Trellis plots AFTER they are
drawn, based on grid functions seekViewport, grid.locator, etc.
See ?trellis.focus
o aspect="iso" for `isometric' x- and y-axes.
o new 'default.scales' argument to high level functions, useful when
writing wrappers
o convenience function 'strip.custom' to create strip functions from
strip.default just by overriding one or more arguments
o type="H" in lplot.xy (for horizontal line). New argument
'horizontal' for panel.xyplot, which affects what happens for
various 'type'-s.
o type="g" in panel.xyplot, which draws a reference grid
o the print method now (optionally) saves the (last) object printed
in a non-visible environment. This allows retrieval of the last
printed object for 'update'-ing, and more importantly, to retrieve
panel specific data for use while interacting with and enhancing
plots after they are printed
o a summary method for trellis objects (currently pretty basic)
changes in behaviour
---------------------
o lset has been deprecated, and trellis.par.set has been enhanced
with equivalent usage
o the strip function now gets the whole strip area to work with, and
is responsible for using it appropriately. strip.default has been
updated accordingly
o choice of color for grouped barcharts now taken from a new setting
parameter 'superpose.fill' and not 'regions' as previously
o arguments to panel.levelplot has changed (this is related to how
default colors are obtained, as described above).
bug fixes
---------
o axes now drawn on last panel even if it doesn't fall on the border
of the layout
o many other miscellaneous fixes, see SvnLog for some details
Changes in lattice 0.9
======================
improvements
------------
o Axis labelling code has been rewritten to internally use S3 method
dispatch, with (unexported) methods for numeric (default),
character (for factors), POSIXct and date. More methods can be
considered on request. reversed limits are now allowed.
o contourplot can now handle missing rows in the data frame
(equivalent to NA's in z). contourplot now uses contourLines().
o cloud and wireframe now use better 3-D projection calculations, and
are generally much better than before. wireframe is much faster,
and has a better shading algorithm. It can also handle NA's and
missing rows.
o splom (specifically panel.pairs) has more functionality, including
the option of using different panel functions below and above the
diagonal, user defined diagonal panels, and a table-like layout
(similar to pairs)
o font specifications now allow for fontface and fontfamily
o much improved update method for trellis objects
o setting auto.key = TRUE now computes key at printing time,
honouring any changes in trellis settings
new features
------------
o arbitrary reordering of conditioning variables, as well as of
levels within a conditioning variable. This works in the update
method (as well as high-level plots), making it easy to examine
parts of a multipanel trellis display and view it in different
conditioning orders.
o extended key functionality (via the legend argument) that allows
multiple legends and the use of arbitrary grid objects as keys
o option to NOT drop unused factor levels when subsetting, by setting
drop.unused.levels = FALSE or
drop.unused.levels = list(cond = FALSE, data = FALSE)
in high-level functions like xyplot.
o Ability to attach settings to a trellis object (rather than
changing the global settings), via argument par.settings in high
level calls.
o Wireframe can now draw parametrized 3-D surfaces like spheres
(generally of the form f(u,v) = (x(u,v), y(u,v), z(u,v)), for
(u,v) in the square [0,1] x [0,1]).
o Functionality similar to locator() (possible due to recently added
features of grid). All panels should have predictable viewport
names, which can be used in seekViewport() to grab a particular
viewport. grid.locator() can subsequently be used to locate points
in the native coordinate system of that panel.
changes in behaviour
---------------------
o allow.multiple now defaults to TRUE (whenever it makes sense),
since '+' in a formula is interpreted differently than S-PLUS
anyway. As in model formulae, I(x+y) works as expected.
o default behaviour of qq and qqmath changed (from S-PLUS behaviour)
to match corresponding base functions qqplot and qqnorm
bug fixes
---------
o Fixed important bug concerning interaction of subscripts and
subsets
o lots of other fixes, mostly obscure
Changes in lattice 0.8
======================
o Major change is the addition of a NAMESPACE. grid is now not
'require()-d', but imported only. To use grid functions directly in
lattice calls (which is a very reasonable thing to do), one needs
to explicitly call library(grid).
o contourplot() has improved when data has NA's. Still doesn't work
when the NA rows are completely omitted (in other words, the full
"matrix" has to be specified, even the entries with NA).
o Clipping can now be turned off in panels and strips via the
trellis.par.get("clip") setting.
See the Changelog for other minor changes.
Changes in lattice 0.7
======================
grouping variables
------------------
o The handling of Grouped displays has been made more consistent (and
different from S-Plus). Whenever a groups= argument is specified,
it is assumed that the user wants a grouped display and an attempt
is made to honour this whenever appropriate (this ultimately
depends on the panel function). A non-trivial addition to the list
of functions that support this is barchart.
o Specification of legend (key) has been made slightly easier in the
most common cases. The key is used most often in conjunction with
the groups argument, and using the global trellis settings. The
simpleKey function (and the auto.key argument to high level
functions) uses the global settings to create a key with a not very
flexible but simple interface.
o Handling of the formula argument has been extended to allow
multiple variables on either side of the formula (with
allow.multiple = TRUE), e.g. xyplot(y1 + y2 ~ x, data, allow.m =
TRUE). These are treated as grouped displays.
scales
------
o Some components of scales, namely tck, rot and cex, can now be
length 2 vectors, controlling left/bottom and right/top separately.
o Some more functions (not all) now handle factors in the formula
correctly (i.e., coerce them to numeric when factors are not
appropriate, but use levels of the factor for labelling).
Changes in lattice 0.6
======================
API change:
----------
o panel functions: In earlier versions, panel functions and prepanel
functions were guaranteed to be passed numeric vectors as x,y (and
z) arguments. This is no longer true. All panel functions are now
expected to handle other possibilities. This has been done in all
the predefined panel functions in lattice (but not in llines,
lpoints, etc.). In practice, the only changes required are (unless
I have overlooked something) to add calls like
x <- as.numeric(x)
y <- as.numeric(y)
at the beginning. prepanel functions can now return, as their xlim
or ylim components, either a numeric vector of length 2 (possibly a
DateTime object), or a character vector. The latter implies that
the elements of this vector should be the respective axis labels,
associated with tick marks at 1:length_of_this_vector.
o high-level functions: The default panel functions of high level
functions can now be different, depending on whether a groups
argument was passed. In practice, this now happens for xyplot,
splom and densityplot. (densityplot has an additional high-level
argument specifically for this, called panel.groups, which is
passed to the panel function.) This is a convenience feature, (and
is inconsistent with S-Plus) in that it presumes that if the user
has specified a groups argument, she wants it to be used, where
appropriate.
o scales: In anticipation of future use (in nlme, for example), the
at and labels components of scales can now be a list. Each element
corresponds to a panel. This is thoroughly untested and not
guaranteed to work.
There are also some other API changes associated with cloud and
wireframe, discussed below.
New Features and Fixes:
----------------------
o Mathematical Annotation; Following changes in grid 0.7, lattice now
supports latex-style labelling using expressions. These can be used
in almost all sensible places (an exception being in colorkey axis
labels in levelplot/contourplot, and this is not expected to
change).
o Date-Time Labelling: Axis labelling procedures did not recognize
DateTime objects in earlier versions. This has been fixed. The
routine currently used is a hack of axis.POSIXt (without the format
option), but will hopefully improve in future.
o 3-D functions:
The 3-D functions cloud and wireframe have been greatly improved in
terms of extensibility. The code is much cleaner, and writing new
panel functions are much simpler. Earlier versions had a problem
with the default placement of the labels (x/y/z-lab) and scales
(arrows/ticks), which has been fixed. [The only major problem that
still remains is when, in a perspective plot, the projection of the
distant face is fully contained inside the projection of the near
face.]
Earlier wireframe code used an unnecessarily large amount of
memory. This has been fixed, although speed is still not good
(fixes are in the planing stage, and would involve changes in
grid). drape=TRUE used to give wrong coloring, which is now fixed.
The 'group' argument now works with wireframe, resulting in
multiple surfaces. This is mostly satisfactory, but is not
sophisticated enough to render intersecting surfaces properly
(might be approximated by a fine enough grid).
There are also some rudimentary lighting options, which can render
the surface as being illuminated from a light source. No
shadows. (Try shade=TRUE in wireframe.)
Although these changes go a long way towards stabilizing
cloud/wireframe, some further changes, especially in how the panel
function handles the groups argument, are expected in the future.
Known bugs:
==========
o Handling of NA values are often inconsistent and buggy. Some of
these are not easily fixable (particularly one in contourplot), but
some are, so bug reports on this are still welcome.
o Fonts specified in the new R font specification may not work yet.
Changes in lattice 0.5
======================
Not many.
o Biggest change in the way settings are handled. Settings are now
stored in a global list called lattice.theme, and is truly
device-specific (i.e., settings for more than one device can be
used concurrently). Improved theme management via lset and
show.settings. Changed defaults for color postscript/pdf.
o bwplot and friends which had to have the grouping factor/shingle on
the y-axis, can now have it on the x-axis as well. Far from
perfect, though, since long labels can overlap with default
settings.
o panel.superpose now accepts an additional argument called
panel.groups (by default panel.xyplot), which is the panel function
actually called for each subset of the data determined by
groups. Avoids having to write something as big as panel.superpose
for natural generalizations like interaction plots. (Related new
panel function: panel.linejoin)
o colorkey in levelplot on all sides. Rendering of large key's much
much faster (using grid.place suggested by Paul)
o Other minor changes (doc, more arguments etc)
o Following changes in grid, calls to base R graphics and lattice
functions can now be mixed.
Changes in lattice 0.4
======================
Some of the implementation details have changed a lot. This might
cause some old code to fail, though no such instances are known.
No significant new features have been added, but there are several
bugfixes (notably in levelplot). The important changes are:
o documentation restructured. There is no topic called `trellis.args'
any more. The detailed description of the arguments common to all
high level trellis functions can be found under help(xyplot)
o once trellis.device() is called, Lattice graphics and base R
graphics should mix more or less seamlessly. There is an optional
argument in trellis.device() that can deal with the first blank
page problem, with certain restrictions.
o a (as yet very small) demo, called by demo("lattice")
o Clipping: whatever is drawn by the panel function is now clipped to
inside the panel region. Strip texts are clipped to inside the
strips.
o Axis tick labels by default do not overlap, some tick marks are
left unlabelled if necessary.
o The argument list for strip.default changed to be like S
o levels() and nlevels() give sensible answers for shingles. new
print methods for shingles and levels of shingles
o colorkey (currently used only in levelplot) can now be placed to
the left, top or bottom as well
o new ``lines'' component in the par.strip.text argument that can be
used to change the height of strips
o xlab, main etc can be double height strings (containing "\n"-s),
the spaces allocated for these would be automatically adjusted
o strip.default now has style=5
o new panel.superpose.2 (suggested by Neil Klepeis)
o the default colour settings sometimes seem too light on a white
background. To deal with this, there is a new setting with some
darker colours that can be set by calling lset(theme =
"white.bg"). see ?lset for details. This is currently in a
proof-of-concept stage (the colors in "white.bg" were chosen just
because I liked their names), and suggestions for better color
schemes would be most welcome.
o show.settings() added
Changes in lattice 0.3
======================
The overall internal structure of the lattice library has changed
considerably in verion 0.3, in particular making it far more readable
and debuggable. However, this also means that some code which had
worked with the earlier version might now fail. (This is just a
discalimer, there are no known instances.)
New Features:
============
o (Almost) full support for the `key' argument for drawing legends
o Support for log scales
o levelplot (but no contourplot. In particular, the contour = T option
in levelplot does not work)
o tmd now works on the output from qq
o panel function names can now be quoted strings
o scales and its x and y components can now be just a character
string like "free" or "sliced", i.e., the relation tag can be
omitted.
o extension to the `type' argument in panel.xyplot and
panel.superpose to allow stair-like and histogram-like plots
(type="s" and "h" in plot), as well as loess smooths (using the
loess.smooth function in the modreg package). Also, more than one
of these options can now be used concurrently. This allows, for
example, a grouped plot where a grouping variable can be used to
fit separate loess curves along with the scatter for each
group. See example(xyplot)
o wrappers around grid functions with API-s of traditional graphics
functions to help port existing S-Plus Trellis code. See below for
details.
o changes in print.trellis to allow mixing of Lattice and usual R
graphics. See below for details.
Porting S-Plus Trellis code to Lattice
======================================
One of the basic problems in porting existing Trellis code to R is the
unusability of the base R functions like lines and points inside panel
functions. To help make the changes more transparently, lattice now
includes several wrappers around grid functions that provide an API
similar to the corresponding base R functions. The list currently
includes lpoints, llines, ltext and lsegments [update: larrows].
Using Lattice and base R graphics concurrently [OBSOLETE]
==============================================
Grid graphics normally do not mix with usual R graphics. However,
end-users typically might want to use lattice functions concurrently
with traditional R graphics. To allow this without intermittent calls
to grid.stop() and grid.start(), print.trellis (which ultimately does
all the plotting in lattice) now tries to preserve the state of the
device on which it plots. By default, library(lattice) opens a device
in grid enabled mode. It can be reverted to non grid mode by
grid.stop(). Subsequently, both Lattice functions and traditional
graphics functions can be used. Devices opened by trellis.device()
start in non-grid mode, unless grid.start() is called.
Still Missing [OBSOLETE, except for the parts about piechart and scale]
=============
o contourplot, wireframe, cloud (partially implemented) and of course,
piechart
o Some components of scale (I haven't found a full list, so
can't say exactly which are missing)
o Fonts
o axis labels badly implemented, no checking for overlaps.
Local variables:
mode: indented-text
End:
|