This file is indexed.

/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: