/usr/lib/R/site-library/ggplot2/NEWS is in r-cran-ggplot2 0.9.3.1-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 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 | ggplot2 0.9.3.1
----------------------------------------------------------------
BUG FIXES
* The theme element `legend.box.just` now can be set. It was not properly
recognized before.
* `stat_density2d` previously resulted in errors when geom="polygon". This
is fixed. (Fixes #741 and #749)
* `annotation_logticks` previously drew one set of logticks for each group,
and inherited aesthetic mappings like colour. It no longer does this. (Fixes
#767)
* Plots with geom_crossbar not display correct symbol in legend. (Fixes #768)
* Grouping is no longer set automatically by `stat_summary()`, allowing for
summary paths. This reverts a change made for 0.9.3. (Fixes #732 and #739)
ggplot2 0.9.3
----------------------------------------------------------------
* The `plotmatrix` function has been deprecated and prints a warning
message.
* `stat_bin` now produces warning messages when it is used with set or
mapped y values. Previously, it was possible to use `stat_bin` and
also set/map y values; if there was one y value per group, it would
display the y values from the data, instead of the counts of cases for
each group. This usage is deprecated and will be removed in a future
version of ggplot2. (Winston Chang. Fixes #632)
* Several small changes were made so that ggplot2 is compatible with
plyr <= 1.7.1 as well as plyr > 1.7.1.
* `geom_polygon` draws multiple polygons as a single grob instead of as
separate grobs. This results in much better performance. For example,
drawing a world map is about 12 times faster. (Winston Chang. Fixes #666)
MINOR FEATURES
* A new theme `theme_minimal` has been added. This theme is based on
`theme_bw`, but does not have outlines around many of the rectangular
elements. (Baptiste Auguie)
* A new theme `theme_classic` has been added. This theme has is based on
`theme_bw`. It has x and y axis lines, but no box around the plotting area
and no grid lines. (Thanks to David Kahle)
* `geom_segment` allows setting `lineend`. (Jean-Olivier Irisson)
* `ggsave` raises an error when making images larger than 50x50 inches.
This prevents accidentally creating extremely large bitmap images that
hang R and eat up memory. (Winston Chang. Fixes #517)
* `train_cartesian` and `train_trans` are no longer memoized. Previously
the results of these functions were saved and so they would not
respond changes in the operating environment, such as a change in
locale. (Winston Chang. Fixes #592)
* In `stat_ydensity` and `geom_violin`, the `scale` argument now accepts
the value "width", for equal widths. Additionally `scale="equal"` has
been deprecated, in favor of "area". (Jean-Olivier Irisson)
* `stat_quantile` now supports `rqss`.
* `scale_size_area` has been added as a replacement for `scale_area`. This
makes the naming more consistent. The new scale also by default makes the
area of points proportional to the value, which is different from what
`scale_area` does. (Fixes #635)
* Functions now have gradual deprecation behavior with the `gg_dep` function.
* Scales for required but missing aesthetics (x and y) are now automatically
added. (Fixes #676)
* `geom_crossbar` previous raised a warning when notches were used and the
notches went outside the hinges. This has been changed to a message.
BUG FIXES
* With `geom_segment`, when a variable mapped to `linetype` had an NA
value, it would raise an error. This is now fixed. (Winston Chang.
Fixes #623)
* When using `coord_map` with some projections, latitude lines wrapped
around the globe and added extra lines. (Winston Chang. Fixes #562)
* `stat_summary` now calculates a unique value at each x. (Winston
Chang. Fixes #622)
* Colorbar guides now supports language objects returned from functions
like `math_format()`, and will render them as expressions. (Kohske
Takahashi)
* When using `coord_polar`, NA or NaN values caused errors. They are now
ignored instead. (Winston Chang)
* Text theme elements used in `guide_legend`, such as `label.theme`, caused
confusing errors when the angle wasn't set. Now it produces a more
informative error message.
* Theme elements now have their subclass listed first, before the `element`
class. (Thanks to Jeffrey Arnold)
* Previously when free scales were used with non-cartesian coords, they just
wouldn't work. Now ggplot throws an error with an informative message.
(Fixes #673)
* `geom_dotplot` previously worked with `position="dodge", but did not work
when using `position=position_dodge()`. It now works with both. (Fixes
#709)
* For linetype scales, NA values previously caused errors. Now `na.value`
for linetype scales defaults to "blank". (Fixes #711)
ggplot2 0.9.2.1
----------------------------------------------------------------
BUG FIXES
* find_global now searches for objects in the namespace environment
instead of the package environment. This fixes problems when ggplot2
is imported to another package but not attached.
ggplot2 0.9.2
----------------------------------------------------------------
THEME SYSTEM
* The theme system has been completely rewritten. (Winston Chang)
* The functions `theme_text`, `theme_line`, and so on have been renamed to
`element_text`, `element_line`, and so on.
* The `opts()` function has been renamed to `theme()`.
* To set the plot title, use `labs(title = "...")` or `ggtitle("...")
instead of `opts(title = "...")`.
* Elements are now just lists of properties, instead of functions that
return grobs.
* Theme elements now can inherit properties. For example, `axis.title.x`
inherits properties from `axis.title`, which in turn inherits from
`text`. The inheritance tree is stored in ggplot2::.element_tree.
* Theme objects can now be added to each other with `+`, without a ggplot
object. There is also a new `%replace%` operator for adding theme
objects together.
* Vertical and horizontal grid lines can now be controlled independently,
with `axis.grid.major.x`, `axis.grid.major.y` (and the same for minor);
`axis.ticks.x` and `axis.ticks.y`; and `axis.line.x` and `axis.line.y`.
* The `size` property of theme elements can be defined relative to the
parent objects, using the `rel()` function.
MINOR FEATURES
* ggplot2 now uses the external gtable package instead of internal gtable
functions.
* The condition that set parameters (e.g. `colour = "red"`) could only be of
length one has been relaxed - they may now be of length one, or exactly the
same length as the data. Recycling is not done because it makes it harder to
spot problems. This makes `annotate` considerably more flexible. (Fixes
#489)
* `stat_contour` is now somewhat faster
* new stat class `stat_ecdf` that shows empirical cumulative distribution
function. (Kohske Takahashi)
* Dependency on `gpclib` removed, and `fortify.SpatialPolygonsDataFrame` will
now use `rgeos` if available - this is particularly useful if you're not
able to use the non-free `gpclib`.
* `ggsave` now supports emf output files.
* all "template" plots (`plotmatrix`, `ggorder` etc) have been deprecated and
will be removed in a future version. These plots are poorly tested and
poorly supported and really belong in a separate package.
* The default guide for continuous color/fill scale is now colourbar.
(Kohske Takahashi. Fixes #555)
* The arrowhead of geom-path and geom-segment with `arrow = TRUE` is
now filled with the same colour as the path.
* The algorithm for calculating breaks locations has been changed from
`pretty_breaks()` to `extended_breaks()` from the 'labeling' package
by Justin Talbot. (Winston Chang. Fixes #580)
* `scale_type`, the function used to pick which type of scale should be
used for a given type of input variable is now an S3 generic. That
means that if you want to add a new default type of scale you can
provide a method - it should return a string giving the name of the
scale to use (e.g. "continuous", "discrete", "date")
* When there are multiple guides (legends), the order that they are
displayed can now be controlled manually. (Kohske Takahashi. Fixes
#470)
* When a scale for a given aesthetic is added to a plot more than once,
display a message indicating that the first scale will be replaced.
(Winston Chang. Fixes #518)
DOCUMENTATION
* All geoms and stats now document their aesthetics. (Thanks to joranE.
Fixes #447)
BUG FIXES
* `scale_x_continuous` now respects `na.value` (Fixes #522)
* `geom_map` now correctly uses set aesthetics (e.g. `colour = "green"`)
* Setting breaks outside the limits of the x or y axis no longer causes
errors. (Kohske Takahashi. Fixes #552)
* `facet_locate` no longer evaluates unneeded expressions. (Winston
Chang. Fixes #565)
* `annotation_map` now gets group id from munched data. (Winston Chang.
Fixes #568)
* `geom_raster` now supports alpha. (Kohske Takahashi. Fixes #596)
* Both axis lines are now drawn above the plotting area panel.
(Winston Chang. Fixes #585)
* The jitter resolution is now correctly calculated when the data
does _not_ include zero. (Thanks to Karl Ove Hufthammer. Fixes #572)
* Legend icons for `geom_boxplot` now display linetype. (Kohske
Takahashi. Fixes #608)
* Facets now appear in the correct order when layers with different
factor levels are added. (Winston Chang. Fixes #543)
* Distances in polar coordinates are calculated along spiral arcs,
instead of straight-line distance. (Winston Chang. Fixes #471)
* `fortify.SpatialPolygonsDataFrame` now uses the correct ordering.
(Charlotte Wickham. Fixes #434)
* `stat_vline` and `stat_hline` no longer throw errors when
`xintercept` and `yintercept` are passed to them. (Winston Chang.
Fixes #624)
ggplot2 0.9.1
----------------------------------------------------------------
MINOR FEATURES
* `ggstructure` and `ggorder`, which call `ggpcp`, no longer have a
`scale` argument since `ggpcp` does not have one.
* built in datasets have been checked to make sure they use characters,
factors and ordered factors appropriately
* `geom_raster` and `annotation_raster` gain new `interpolate` argument for
controlling whether or not rasters are interpolated
* Added `plot` as an alias for `print` for ggplot objects.
* Visual tests have been moved to /visual_test and modified to work with the
vtest package. (Thanks to Winston Chang)
* `geom_dotplot`: now supports stacking. It uses `stackgroups = TRUE` instead
of the usual position="stack", for technical reasons. It also will stack in
the x direction when binning along the y axis. (Thanks to Winston Chang)
* `geom_rug` now allows control over which sides to put the rug lines, with
the `sides` argument. (Thanks to Winston Chang)
* `annotation_logticks`: a new geom that adds tick marks on the inside of the
plotting rectangle that have diminishing spacing for log-10 axes. (Thanks
to Winston Chang)
* Coordinate expansion is now handled by an interaction of the scale and
coord, rather than by the scale only. Also, the `wise` argument is no
longer needed. (Thanks to Winston Chang and Kohske Takahashi)
BUG FIXES
* `facet_grid` no longer drops duplicate cases (Fixes #443)
* `munch_range` properly reports the x and y range. (Thanks to Winston Chang)
* `stat_bin2d` handles data with NA in the position variables. Error was
triggered when scale was limited to a range smaller than the range of
the data. (Bug reported by Tao Gao; diagnosed and fixed by Brian Diggs)
* `scale_*_identity` will now produce a legend when `guide = "legend"` and no
breaks or labels are supplied (Fixes #453)
* `geom_map` now works with `coord_map` (Fixes #480)
* discrete scales now accept named vectors of labels again (Fixes #427)
* `geom_raster` works better with categorical input (Fixes #463)
* `qplot` no longer uses non-standard evaluation for geom/stat arguments - it
doesn't seem to be needed and was causing problems when qplot was used in
special environments (e.g. in knitr) (Fixes #377)
* `coord_train.polar` and `coord_train.trans` remove NAs from breaks.
(Thanks to Winston Chang. Fixes #422)
* Theta breaks with `coord_polar` have equal angular spacing. (Thanks to
Winston Chang and Kohske Takahashi. Fixes #288)
* Empty data frames are now handled correctly: layers with empty data are
dropped silently, instead of inheriting data from the plot. (Thanks to
Winston Chang. Fixes #31, #332, #506 and #507)
* The alpha value of set colours is now preserved by default. To return to the
old behaviour, set `alpha = 1`. (Fixes #475)
* `scale_*_manual` will throw an error if you have too few values. (Fixes
#512)
* `facet_wrap` gets the `as.table` argument back. (Fixes #497)
* `resolution` now returns 1 when range is zero. (Fixes #526)
* Titles are displayed above legend when legend is on top. (Thanks to
Kohske Takahashi. Fixes #432)
* Specifying breaks outside coord limits works. (Thanks to Kohske Takahashi.
Fixes #430)
* `renames_aes` now uses exact matching instead of partial matching. (Thanks
to Winston Chang. Fixes #529)
* `labs()` now works with American spellings. (Thanks to Winston Chang.
Fixes #521)
* `stat_density2d` sets the limits for `kde2d` from the limits of the x and
y scales. (Thanks to Winston Chang)
ggplot2 0.9.0
----------------------------------------------------------------
NEW FEATURES
* `annotation_custom`: a new geom intended for use as static annnotations that
are the same in every panel. Can be used to add inset plots, tables, and
other grid-based decorations inside the plot area (Contributed by Baptiste
Auguié).
* `geom_map`: a new special case of `geom_polygon` useful when you are drawing
maps, particularly choropleth maps. It is matched with `annotation_map`, an
even faster special case when you want the same map drawn in each panel.
* `geom_raster` is a special case of `geom_tile` for equally sized rectangular
tiles. It uses the raster functionality of R graphics devices for massively
increased speed and much decreased file sizes. It is matched with
`annotation_raster`, an even faster special case, for when you want to draw
the same raster in each panel.
* `geom_violin`: an implementation of violin plots, which are a way of
visualizing kernel density estimates. (Thanks to Winston Chang)
* `geom_dotplot`: dot plots, as described in Wilkinson (1999). To bin the
data, it uses `stat_bindot` to bin the data, which has two methods: histodot
and dot-density. Histodot binning uses fixed-width bins just like
`stat_bin`, while dot-density binning uses variable-width bins. A new grob,
`grob_dotstack` is used to render the dots. (Thanks to Winston Chang)
* New fortify methods have been added for objects produced by the `multcomp`
package.
* `stat_summary2d` and `stat_summary_hex`. These are work like `stat_bin2d`
and stat_binhex but allow any summarisation function (instead of just
count). They are 2d analogs of `stat_summary`
* `facet_grid`: The space argument now supports `free_x` and `free_y` next to
`free` and `fixed, this allows the user to adjust the spatial scaling of the
facets in either the x or y direction. This is especially useful when the
scales are very different. In this case space = `free` could make some
facets very small. (Thanks to Willem Ligtenberg)
DOCUMENTATION
* Thorough clean up and checking, including documenting all arguments, adding
systematic cross-references, and adding commonly requested examples. Thanks
to Jake Russ and Dennis Murphy for the help.
* Complete series of aesthetics pages (grouped subsets of aesthetics) with
examples of how to use the major ones, see e.g. `?fill`, `?shape`, `?x`,
* Added a complete list of theme opts with usage examples in `?opts`
* Added "translate" pages to demonstrate usage between qplot and ggplot, GPL,
base and lattice graphics: `?translate_qplot_base`, `?translate_qplot_gpl`,
`?translate_qplot_lattice`, `?translate_qplot_ggplot`,
SCALES
* Scales have been rewritten to use the new `scales` package, which does a
much better job at defining what a scale is and making it easier for you to
create your own scales. Scales should now behave much more consistently, and
it should be easier for me to add new features in the future.
* `breaks` parameter can now be a function, which will be passed the scale
limits and expected to return a character vector of breaks
* `labels` parameter can now be a function - this replaces the previous
formatter function that only some scales possessed, and the `major` argument
to the data time scales. This function should take a vector of breaks as
input, and return a character vector or list of expressions as output. See
`comma_format`, `dollar_format`, `percent_format`, `scientific_format`,
`parse_format` and `math_format` for examples
* Transformations are now provided by the scales package - see `?trans_new`
for list of available transformations, and how to create your own. The
transformations in this package should do a better job at computing default
breaks.
* Transformations for continuous scales are now detected automatically when
the default scales are added. This ensures that dates and date times will
display correctly when used for any aesthetic - previously they only worked
with position scales. The system is now also easier to extend to new types
of continuous data that you might want to plot. (Fixes #48)
* All scales now accept a `na.value` parameter which provides an aesthetic
value to be used for `NA` values in the data. Colour/fill scales default to
grey, which should stand out as different from non-missing values.
* The new `oob` (out of bounds) parameter controls how scales deals with
values outside the limits. The default action is `censor` - see `clip` for
another option.
* Only `scale_x_log10`, `scale_x_sqrt` and `scale_x_reverse` provided as
convenience functions for x and y scales. Use e.g. `scale_x_continuous(trans
= "log")` to access others
* `set_default_scale` has been removed. If you want to change the default
scale for an aesthetic, just create a function called
`scale_aesthetic_continuous` or `scale_aesthetic_discrete` that returns the
scale that you want. For example:
p <- qplot(mpg, wt, data = mtcars, colour = factor(cyl))
p
scale_colour_discrete <- scale_colour_brewer
p
* Scales now automatically shrink to what is actually displayed on the plot,
not the underlying data used for statistical transformation. If you want the
old behaviour, supply `shrink = FALSE` to the facetting specification.
(Fixes #125)
* `scale_colour_gradient` and `scale_fill_gradient` now use a colour scheme
with constant hue but varying chroma and luminance. This is better because
it creates a natural ordering inline with the order of the colour values.
FACETS
* Converted from proto to S3 objects, and class methods (somewhat) documented
in `facet.r`. This should make it easier to develop new types of facetting
specifications.
* The new `facet_null` specification is applied in the default case of no
faceting. This special case is implemented more efficiently and results in
substantial performance improvements for non-facetted plots.
* Facetting variables will no longer interfere with aesthetic mappings -
`facet_wrap(~ colour)` will no longer affect the colour of points.
DEVELOPMENT
* ggplot2 has moved away from the two (!!) homegrown documentation systems
that it previously relied on, and now uses roxygen extensively. The current
downside is that this means that ggplot2 website can no longer be updated,
but I hope work with the `helpr` package will resolve that shortly.
* ggplot2 now uses a `NAMESPACE`, and only exports functions that should be
user visible - this should make it play considerably more nicely with other
packages in the R ecosystem. Note that this means you now need to explicitly
load `plyr` (and other packages) if you are using them elsewhere in your
code.
* ggplot2 now has a start on a set of automated tests. As this test suite
expands it will help me ensure that bugs stay fixed, and that old bugs don't
come back in new versions. A test suite also gives me more confidence when
I'm modifying code, which should help with general code quality.
COORDS
* Converted from proto to S3 objects, and class methods (somewhat) documented
in `coord.r`. This should make it easier to develop new types of coordinate
systems.
* Added a new method `coord_range` for finding the x and y range even after
coordinates have been transformed to other names (eg., theta and r). (Thanks
to Winston Chang)
RENDERING
* When printing a ggplot2 object, the rendered plot information is returned
invisibly. You can capture this with (e.g.) `x <- print(qplot(mpg, wt, data
= mtcars))` and in the future will be able to use it to get information
about the plot computations, such as the range of all the scales, and the
exact data that is plotted.
* Drawing a plot takes place in three documented steps: `ggplot_build` which
creates a list of data frames ready for rendering builds, `ggplot_gtable`
which creates a `gtable` of grobs, and `grid.draw` which renders the grobs
on screen. Each of these returns a data structure which should be useful for
understanding and modifying the rendered plot. This is still a work in
progress, so please ask questions if anything is confusing.
* The `drop` and `keep` parameters to `ggsave` and `print.ggplot` have been
dropped, as the data structure returned by `ggplot_gtable` is sufficiently
rich enough to remove the need for them.
* Axis labels are now centred underneath the panels (not the whole plot), and
stick close to the panels regardless of the aspect ratio.
GUIDES
* Guides (particularly legends) have been rewritten by Kohske Takahashi to
provide considerably more layout flexibility.
* `guide_legend` now supports multi-row/column legend and reversed order,
gives more flexible positioning of title and label, and can override
aesthetics settings. This is useful, for example, when alpha value in a
panel is very low but you want to show vivid legend.
* `guide_colorbar` is a guide specially for continuous colour scales as
produced by colour and fill scales.
MINOR CHANGES
* `geom_text` now supports `fontfamily`, `fontface`, and `lineheight`
aesthetics for finer control over text display. (Thanks to Kohske Takahashi
for the patch. Fixes #60)
* `collide`, which powers `position_dodge` and `position_stack`, now does not
error on single x values (Thanks to Brian Diggs for a fix. #157)
* `...` in `ggplot` now passed on to `fortify` method when used with an object
other than a data frame
* `geom_boxplot`: outlier colour and shape now default to values set by the
aesthetic mapping (thanks to suggestion by Ben Bolker), the width of the
median line is now `fatten` times the width of the other lines (thanks to
suggestion by Di Cook), and the line type can now be set. Notched box
plots are now supported by setting `notch = TRUE` (thanks to Winston Chang
for the patch).
* `ggsave` can work with cm and mm `units` (Thanks to patch from Jean-Olivier
Irisson)
* `scale_shape` finally returns an error when you try and use it with a
continuous variable
* `stat_contour` no longer errors if all breaks outside z range (fixes #195).
* `geom_text` remove rows with missing values with warning (fixes #191)
* New generic function `autoplot` for the creation of complete plots
specific to a given data structure. Default implementation throws
an error. It is designed to have implementations provided by other
packages. (Thanks to suggestion by Brian Diggs)
* `ggpcp` loses the `scale` argument because it relied on reshape(1) code
* `map_data` passes `...` on to `maps::map` (Fixes #223)
* `coord_fixed` accepts `xlim` and `ylim` parameters to zoom in on x and y
scales (Fixes #91)
* ggplot2 will occasionally display a useful hint or tip on startup. Use
`suppressPackageStartupMessages` to eliminate
* `stat_binhex` uses correct bin width for computing y axis bounds. (Fixes
#299, thanks to Dave Henderson for bug report and fix.)
* `stat_smooth` now adjusts confidence intervals from `loess` using a
t-based approximation
* `stat_smooth` reports what method is used when method is "auto". It also
picks the method based on the size of the largest group, not individually by
group. (Thanks to Winston Chang)
* `stat_bin` and `geom_histogram` now use right-open, left-closed intervals by
default. Use `right = TRUE` to return to previous behaviour.
* `geom_vline`, `geom_hline`, and `geom_abline` now work with non-Cartesian
coordinate systems. (Thanks to Winston Chang)
ggplot2 0.8.9
----------------------------------------------------------------
A big thanks to Koshke Takahashi, who supplied the majority of improvements
in this release!
GUIDE IMPROVEMENTS
* key size: can specify width and height separately
* axis: can partially handle text rotation (issue #149)
* legend: now can specify the direction of element by opts(legend.direction =
"vertical") or opts(legend.direction = "horizontal"), and legend box is
center aligned if horizontal
* legend: now can override the alignment of legend box by
opts(legend.box = "vertical") or opts(legend.box = "horizontal")
* legend: now can override legend title alignment with opts(legend.title.align
= 0) or opts(legend.title.align = 1)
* legend: can override legend text alignment with opts(legend.text.align = 0)
or opts(legend.text.align = 1)
BUG FIXES
* theme_*: can specify font-family for all text elements other than geom_text
* facet_grid: fixed hirozontal spacing when nrow of horizontal strip >= 2
* facet_grid: now can manually specify the relative size of each row and column
* is.zero: now correctly works
* +: adding NULL to a plot returns the plot (idempotent under addition)
(thanks to suggestion by Matthew O'Meara)
* +: meaningful error message if + doesn't know how to deal with an object
type
* coord_cartesian and coord_flip: now can wisely zoom when wise = TRUE
* coord_polar: fix point division bugs
* facet_grid: now labels in facet_grid are correctly aligned when the number
of factors is more then one (fixes #87 and #65)
* geom_hex: now correctly applies alpha to fill colour not outline colour
(thanks to bug report from Ian Fellows)
* geom_polygon: specifying linetype now works (thanks to fix from Kohske
Takahashi)
* hcl: can now set c and l, and preserves names (thanks to suggestion by
Richard Cotton)
* mean_se: a new summary function to work with stat_summary that calculates
mean and one standard error on either side (thanks to contribution from
Kohske Takahashi)
* pos_stack: now works with NAs in x
* scale_alpha: setting limits to a range inside the data now works (thanks to
report by Dr Proteome)
* scale_colour_continuous: works correctly with single continuous value (fixes
#73)
* scale_identity: now show legends (fix #119)
* stat_function: now works without y values
* stat_smooth: draw line if only 2 unique x values, not three as previously
* guides: fixed #126
* stat_smooth: once again works if n > 1000 and SE = F (thanks to bug report
from Theiry Onkelinx and fix from Kohske Takahashi)
* stat_smooth: works with locfit (fix #129)
* theme_text handles alignment better when angle = 90
ggplot2 0.8.8
----------------------------------------------------------------
Bug fixes:
* coord_equal finally works as expected (thanks to continued prompting from
Jean-Olivier Irisson)
* coord_equal renamed to coord_fixed to better represent capabilities
* coord_polar and coord_polar: new munching system that uses distances (as
defined by the coordinate system) to figure out how many pieces each segment
should be broken in to (thanks to prompting from Jean-Olivier Irisson)
* fix ordering bug in facet_wrap (thanks to bug report by Frank Davenport)
* geom_errorh correctly responds to height parameter outside of aes
* geom_hline and geom_vline will not impact legend when used for fixed
intercepts
* geom_hline/geom_vline: intercept values not set quite correctly which
caused a problem in conjunction with transformed scales (reported by Seth
Finnegan)
* geom_line: can now stack lines again with position = "stack" (fixes #74)
* geom_segment: arrows now preserved in non-Cartesian coordinate system (fixes
#117)
* geom_smooth now deals with missing values in the same way as geom_line
(thanks to patch from Karsten Loesing)
* guides: check all axis labels for expressions (reported by Benji Oswald)
* guides: extra 0.5 line margin around legend (fixes #71)
* guides: non-left legend positions now work once more (thanks to patch from
Karsten Loesing)
* label_bquote works with more expressions (factors now cast to characters,
thanks to Baptiste Auguie for bug report)
* scale_color: add missing US spellings
* stat: panels with no non-missing values trigged errors with some statistics.
(reported by Giovanni Dall'Olio)
* stat: statistics now also respect layer parameter inherit.aes (thanks to bug
report by Lorenzo Isella and investigation by Brian Diggs)
* stat_bin no longer drops 0-count bins by default
* stat_bin: fix small bug when dealing with single bin with NA position
(reported by John Rauser)
* stat_binhex: uses range of data from scales when computing binwidth so hexes
are the same size in all facets (thanks to Nicholas Lewin-Koh for the bug
report)
* stat_qq has new dparam parameter for specifying distribution parameters
(thanks to Yunfeng Zhang for the bug report)
* stat_smooth now uses built-in confidence interval (with small sample
correction) for linear models (thanks to suggestion by Ian Fellows)
* stat_spoke: correctly calculate stat_spoke (cos and sin were flipped, thanks
to Jean-Olivier Irisson for bug report and fix)
ggplot2 0.8.7
----------------------------------------------------------------
* coord_map gains xlim and ylim arguments to control region of projection
* corrected label generation for computed aesthetics (..x..) and special
names (`x x`)
* fullseq: now always returns vector of length two, even when range is 0
* geom_point legend takes more care to ensure that fill colours will be shown
* legend: fixed scale merging bug when labels were set manually
* scale_area: gains a legend argument like all other scales
* scale_colour_brewer: gains na.colour argument to set colour of missing
values
* stat_bin2d: fix typo in breaks calculation
* stat_bin: deals with floating point rounding issues using the same
algorithm as base::hist
* stat_density2d: fixed bug when contour = FALSE (Thanks to Takahashi Kohske)
ggplot2 0.8.6
----------------------------------------------------------------
NEW FEATURES
* trans_log1p: new log + 1 transformer contributed by Jean-Olivier Irisson
BUG FIXES
* aesthetics: fixed bug when overriding aesthetics with NULL
* annotate: adds layers with legend = FALSE
* coord_equal: correctly place tick marks (Fixes #61)
* documentation: usage statements should now be spread over multiple lines
* fortify.SpatialPolygonsDataFrame: fixed bug when region variable had missing values
* legend: don't try and display legend when unnecessary scale added
* legend: text labels now correctly left-aligned when non-numeric
* order aesthetic now correctly affects position adjustments (Fixes #70)
* qplot loads facetting variables from global environment more correctly
* scale_date and scale_date_time now work with infinite positions
* scale_date and scale_date_time now take expand argument
* scales were not getting automatically added in many situations (Fixes #69)
* scale_manual was not returning labels in the correct format and so legends
were not getting merged correctly
* stat_contour: fix error if x or y coordinates were negative
* stat_bin: now copes with bars of zero height (Fixes #72)
* stat_qq: always use sorted data (rather than interpolated quantiles) on
sample axis. This makes it behave more like qqnorm
* stat_quantile: correctly group results
* xlim now works with datetimes
* all plyr functions prefixed with their namespace to avoid clashes with other
packages (thanks to Steve Lianoglou)
ggplot2 0.8.5
----------------------------------------------------------------
NEW FEATURES
* geom_text gains parse argument which makes it possible to display
expressions. (Implements #50)
* all scales now have legend parameter, which defaults to TRUE. Setting to
false will prevent that scale from contributing to the legend (Implements
#27)
* default axis labels and legend titles are now stored in the options, instead
of in each scale. This fixes a long standing bug where it was not easy to
set the label for computed variable, such as the y axis on a histogram.
Additionally, it means default scales are only added to the plot until just
prior to plotting, instead of the previous behaviour where scales where
added as layers were added - this could cause problems if you later modified
the underlying data. (Implements #28)
* coord_equal: when ratio = NULL (the default), it will adjust the aspect
ratio of the plot, rather than trying to extend the shortest axis.
* x and y positions can be set to Inf or -Inf to refer to the top/right and
bottom/left extents of the panel. (Implements #18)
* expand_limits(): a new function to make it easy to force the inclusion of
any set of values in the limits of any aesthetic.
NEW FEATURES (MINOR)
* aesthetics: when _setting_ an aesthetic, you may only set it to a single
value. This was always a good idea, but now it is enforced with an
informative error message.
* stat_contour bump up default number of contours
* stat_density2d: make number of grid points used for density estimation
user controllable (implements #9)
* geom_bin now allows you to set whether bins used intervals of the form
(a, b] or [a, b) with the "right" parameter (implements #20)
* geom_path: linejoin, lineend and linemitre are now user controllable
(implements #24)
* scales: all scales check that breaks are supplied if labels are, and
that breaks and labels are the same length (implements #40)
* scales: if breaks are a named vector, the names will be used as labels
(thanks to suggestion by David Kahle)
* scale_colour_gradient, scale_colour_gradient2 & scale_colour_gradientn now
have formatter argument to match scale_continuous
* updated citation to refer to the ggplot2 book
BUG FIXES
* coord_cartesian now correctly sets limits when one or both of the position
scales are non-linear. (fixes #17)
* coord_equal: now works with non-linear scales (fixes #13)
* coord_map sets aspect ratio correctly (fixes #4)
* coord_polar correctly combines labels on end of axis if expressions
(fixes #39)
* coord_trans now respects scale expand parameter (expansion occurs after
transformation) (fixes #14)
* facet_grid with scales = "free" and space = "free" now calculates space
correctly if the range of the scale is < 1 (fixes #1)
* facet_grid works once more when facetting with multiple variables in one
direction (fixes #11)
* facet_wrap now sets aspect ratio correctly
* facet_wrap now maintains original order of data
* geom_hline and geom_vline now work with coord_flip (fixes #30)
* geom_path drops missing values at start and end of each line (fixes #41)
* scale_shape_discrete, scale_size_continuous, scale_alpha and
scale_linetype_discrete added to scales to match naming convention of all
other scales (fixes #47)
* legends now correctly calculate label widths (fixes #38)
* legends will only merge if both the title and all labels are the same.
(fixes #16)
* legends: fix for bug #19: Legend with three constraints doesn't work
* stat_contour & stat_density2d: fix grouping bugs (issue #7)
* xlim, ylim: fix bug when setting limits of discrete scales
ggplot2 0.8.4
----------------------------------------------------------------
* aes and aes_string both convert prefixes to full names
* aesthetics: corrected list of aesthetics to include american spelling of
colour as well as base R abbreviations
* aesthetics: fix bug in detecting which aesthetics are calculated
* aes_string treats NULL as "NULL"
* annotate now works with missing x and y (e.g. for geom_rect)
* continuous scale limits now automatically sorted
* coord_polar: fix bug if breaks not all inside limits
* facet_wrap: can now specify both ncol and nrow without getting an error
* facet_wrap: now works with statistics that produce both x and y values (e.g.
stat_qq)
* fullseq now adds additional break on bottom if necessary, so that the
include.lowest argument in cut never comes into play (this the source of a
potential bug in histograms)
* geom_boxplot: alpha now affects fill colour of boxes only
* geom_path correctly switches to segments if varying alpha used (thanks to
Karl Ove Hufthammer for the report and Baptiste Auguie for the fix)
* geom_point: the alpha aesthetic now also affects the fill.
* geom_ribbon always sorts input to avoid problems with certain pathological
inputs
* geom_smooth was incorrectly applying alpha to line colour in the legend
* nullGrob renamed to zeroGrob to avoid name conflict with grid
* position_collide now works with missing values
* position_stack: fixed bug in detection of overlap for negative values
* scale_discrete_position now uses drop argument to force dropping of unused
levels
* scale_gradient, scale_gradient2 and scale_gradientn now uses label
parameters, if supplied
* scale_x_inverse, scale_y_inverse now actually work, and added recip as alias
* stat_qq now correctly groups results
* stat_smooth will not try and fit a line to 2 or fewer points (previously
didn't try for only 1 point)
* stat_spoke now works with reversed scales
* grouping: now consistent between different geoms (Issue #33)
ggplot2 0.8.3
----------------------------------------------------------------
New features
* alpha: new aesthetic, with scale alpha. Where a geom has both fill and colour, alpha affects the fill.
* annotate: new annotate function to make it easier to add annotations to plots
* facet_grid now takes strip label function from parameter labeller, not theme setting
* facet_grid: gains as.table argument to control direction of horizontal facets
* fortify: full set of methods for turning data from the sp package into data frames that can be plotted with ggplot2
* geom_errorbarh: new geom for horizontal error bars
* labels_parsed and labels_bquote functions to make it easier to display expressions on facet labels
* scale_manual now supports breaks and limits
* subset: experimental new feature. Layers now have a subset argument, which takes subsets formatted like .(var1 < 5, var2 == 3) etc.
* xlim and ylim now work recognise Date and POSIXct classes to create date and date_time scales respectively
Dealing with missing values
* facet_wrap: add drop argument to control whether or not panels for non-existent combinations of facetting variables should be dropped or not. Defaults to TRUE
* scale_discrete: empty factor levels will be preserved, unless drop = TRUE
Bug fixes
* added presidents dataset from book to package
* American spelling of color accepted in as geom parameter, and all colour
scales have alias spelled color (e.g. scale_color_hue)
* facet_wrap: contents guaranteed to be clipped to panel
* facet_wrap: corrected labelling when facetting by multiple variables (thank
to Charlotte Wickham for a clear test case)
* geom_histogram now works with negative weights (provided position =
"identity"). This is useful for creating back to back histograms.
* geom_step: improve legend
* geom_text: better legend
* geom_vline, geom_hline, geom_abline: should work in yet more situations
* resolution: fixed bug in computation of resolution that lead to (e.g.)
incorrect boxplot widths when there was only a single x value in a group.
* position_stack: fixed bug in detection of overlap for very large bins
* scale_discrete: factor levels no longer mistakenly reordered
* scale_hue: now spans full range of hue if it less than 360 degrees
* scale_hue: rotated default hue range by 15 degrees to avoid unfortunate
red-green contrast in two colour case
* show now works with ggplot objects
* stat_sum: fixed bug which resulted in dropped aesthetics
* stat_summary: now warns when dropping records with missing values
* stat_summary: should be a little faster
* stat_summary: correctly passes ... arguments on fun.data
* theme_bw: corrected justification of axis.text.y
* trans: bug fixes to logistic transformation
* order aesthetic should work again
ggplot2 0.8.2
----------------------------------------------------------------
New features
* borders, fortify.map and map_data to make it easier to draw map borders and
choropleth maps
* cut_interval and cut_number utility functions to discretise continuous
variables
* stat_summary has reparameterised to make it easier to specify different
summary functions. It now has four parameters: fun.y, fun.ymin and
fun.ymax; and fun.data. See the documentation for stat_summary for more
details
Minor improvements
* ggfluctuation: default to aspect ratio that produces squares
* ggsave: filename now first parameter, not second
* qplot: if sample aesthetic is used, stat automatically set to qq
* scale_datetime: improved breaks calculation
* scale_gradient: better default colour scheme from red to blue (thanks to
Charlotte Wickham for providing the Munsell colours)
* scale_size and scale_area: increased default size range
* stats: all give useful error message if missing a required aesthetic
* theme_set warns if missing needed theme elements
* theme_text: now possible to right and left align text with hjust=0 and hjust=1 respectively
Bug fixes
* be explicit about is.discrete to avoid clash with Hmisc
* facet_wrap: work around R bug so no longer crashers when ncol = 1
* geom_errorbar now works correctly with dashed lines
* geom_path will now silently ignore lines with less than 2 points (instead of
throwing a mysterious error as before)
* geom_path now responds to the size aesthetic once more
* geom_polygon etc now correctly displays linetype on legends
* geom_step now works with multiple groups
* geom_vline and geom_hline: fix bug when mapping intercept to variable in
data frame
* ggsave: path parameter correctly sets path
* guides: fix broken legend from default stat aesthetics (e.g. for stat_sum)
* scale_manual now works better with missing values
* scale_manual: labels now correctly sets legend labels.
* stat_density_2d: no longer passes unnecessary parameters to kde2d causing an
error message (seen when setting aesthetics with qplot)
* stat_pointrange: better relationship between point and line widths
* stat_sum now correctly preserves other aesthetic columns (should be a bit faster too)
ggplot2 0.8.1
----------------------------------------------------------------
New features
* new labs, xlab & ylab functions for easily modifying axis labels and legend titles
* qplot now guesses what geom you want based on the position aesthetics that you provide:
* both x & y: scatterplot
* only x: histogram
* only y: scatterplot of seq_along(y) vs y
* scale_datetime: a first attempt at a scale for date time objects of class POSIXt
Aesthetic improvements
* legends should now work in cases where you have multiple layers the use the
same geom and have different aesthetic mappings
* theme: new theme setting legend.key.size determines size of keys in legend
* theme: new theme setting plot.margins to control the plot margins
* tweaks to plot and legend layout
Other minor improvements
* geom_point warns if missing values present in data and not displayed on plot
* geom_smooth gives a more accurate warning when you have incorrectly specified the grouping
* geom_smooth will switch to an alternative smoothing method (mgcv::gam(y ~
s(x, bs = "cr"))), when there are more than 1000 observations
* layers gain a legend argument, which allow you to force the layer either
into (TRUE) or out of (FALSE) the legend
Bug fixes
* coord_equal now calculates scales correctly again
* coord_flip: flips axes labels again too
* coord_trans fix bug where transformation incorrect
* facet_grid: fix bug where tick labels where being produced outside the range of the axes
* facet_wrap: fixed bug with ncol = 1 or nrow = 1
* facet_wrap: labels correctly clipped to axis ranges
* facet_wrap: labels will match panels even when factor levels are not in alphabetical order
* facet_wrap: now works when a layer doesn't contain every level of the faceting variables
* geom_abline should now work in a wider variety of situations
* geom_smooth now gives correct asymmetric standard errors with generalised
linear models (thanks to Thierry Onkelinx)
* geom_vline and geom_hline now correctly transform their intercepts if the
scale is transformed
* geom_vline and geom_hline: now use xintercept and yintercept instead of intercept
* legend.position and legend.justification work again
* position_dodge now works for any number of elements with smaller widths, not just 2!
* scale_discrete_position: does a better job of calculating axis limits when
plotting a mixture of continuous and discrete values (e.g. with geom_jitter)
* summary: tweaks to improve output
ggplot2 0.8 (2008-11-18)
----------------------------------------
* The two biggest new features in this release are the (long awaited) ability
to have scales that vary between facets, and a faceting system that works
like lattice (facet_wrap). From qplot, you can use facet_wrap by specifying
one sided formula (~ colour, as opposed to . ~ color). To see some potential
uses for these new features, see the "Positioning" chapter of the book.
Implementing these changes has required a rewrite of large parts of the
coordinate systems code, so if anything seems strange with non-Cartesian
coordinate systems, please get in touch.
* I've also made another round of tweaks to make the plots more aesthetically
pleasing.This includes using a bright blue colour for geoms used to add
statistical summaries to plots (contour, smooth, and quantiles), and
tweaking the default colour scheme for the continuous colour scale.Please
let me know what you think.Remember that most of these options are
controllable with the theming system - see the book chapter "Polishing your
plots for publication".
* Accompanying this new release of the package is an updated and expanded
version of the book. The content of the book is now largely complete (~170
pages), and over the coming months I will be working on make it polished and
easy to understand.See http://had.co.nz/ggplot2/book.I love to hear your
feedback about the book, but at this point please don't bother reporting
minor typos, I would much rather hear about what you want to do, but can't
figure out from the book.
Other new features:
* geom_bin2d/stat_bin2d & geom_hex/stat_binhex: for 2d square and hexagon binning, particularly useful for alleviating overplotting in scatterplots
* geom_freqpoly: draws frequency polygons (= stat_bin + geom_line)
* scale_position: both discrete and continuous gain a new formatter argument
to control the default formatting of the axis labels. See also the handy
numeric formatters: dollar, comma and percent
* the xlim and ylim functions now produce discrete scales when appropriate,
and generate a reverse scale if the minimum is greater than the maximum
Improvements
* coord_map gains experimental axis labels
* facet_grid: new support for varying scales in rows and columns
* facet_wrap: new faceter which wraps a 1d ribbon of panels into 2d, in a
similar way to lattice
* geom_bin: gains a drop argument to control whether or not 0 count bins
should be removed
* geom_path and geom_line gain arrows argument to match geom_segment
* ggsave now checks that you are using it with a ggplot plot
* ggsave now produces postscript files that are suitable for embedding in
another document
* ggsave now recognises the .svg extension and will produce svg files, if
possible
* ggsave: default dpi changed to 300, on the assumption that you are saving
the plot for printing
* qplot: uses facet_wrap if formula looks like ~ a + b (as opposed to a ~ b)
Aesthetic tweaks
* geom_bar, geom_polygon, geom_rect, ...: default fill colour is now much
closer to black to match the defaults in other geoms (point, line, etc)
* geom_line, geom_path, geom_segment: lines have squared ends
* geom_point, geom_pointrange and geom_boxplot: now use shape = 16 instead of
19. This shape does not have a border from R 2.8 on, and so will look
better when displayed transparently.
* geom_contour, geom_density2d, geom_quantile and geom_smooth use a bright
blue colour for lines, to make them stand out when used with black points
* scale_gradient: tweaked default colours to make more aesthetically pleasing
* theme: new theme setting panel.margin (a unit) controls gap between panels
in facetted plots (for both grid and wrap)
* theme_gray: removed black border around strips
* theme_bw: tweaks to make black and white theme look a little nicer
Bug fixes
* coord_cartesian now correctly clips instead of dropping points outside of its limits
* facet_grid: margins now grouped correctly in default case (non-aesthetic
variables ignored when generating default group value)
* facet_grid: fix long standing bug when combining datasets with different
levels of facetting variable
* geom_smooth calls stat::predict explicitly to avoid conflicts with packages
that override predict for S4 model classes
* grid: correctly expose subcomponents of strips and axes
* mapping aesthetics to functions of stat output now works in a much wider
variety of cases
* order aesthetic should now work with bars (and in general more geoms)
* position_dodge now works with points and other geoms that lack xmin and xmax
* scale_area works once more
* scale_discrete_position: empty levels are no longer displayed by default, if
you want them, use breaks = levels(myfactor)
* scale_discrete_position: fixed bug when limits were set
* scale_discrete_position: more aesthetically pleasing expansion for a wider
ranges of plots (picks expansion based on whether or not geom with width
used, e.g. bars)
* scale_gradient*: axes are correctly labelled when a transformation is used
* scale_x_log10, scale_y_sqrt etc now correctly transform output from
statistics as well as raw data
* scale_z_* now removed because no longer used by anything
* stat_bin: correctly returns 0 when no observations in a bin (was previously
returning NA)
* stat_quantreg: deal with yet another new output format from quantreg
* stat_contour now has arguments to control the position of the contours,
rather than relying on the z scale
* theme: panel.empty setting removed as it is no longer used
* theme_grey now aliased to theme_gray
* theme_line: setting size works correctly
* theme_rect, theme_segment: size now measured in mm, to be consistent with
the rest of ggplot
ggplot2 0.7
----------------------------------------------------------------
* ggplot2 0.7 introduces a new theming system which allows you to control
(almost) every aspect of the appearance of the plot. This system is
documented in the book chapter "Polishing your plots for publication",
available from http://had.co.nz/ggplot2/book/polishing.pdf.
Bugs fixed
* geom_boxplot: now displays outliers even if only one present
* geom_jitter: setting one jitter direction to 0 now works
* geom_segment: should now work correctly in all coordinate systems (note that
arrows only work in Cartesian coordinates)
* ggsave: correctly uses dpi for raster devices and default dpi changed to 72
(thanks to Brian Ripley for pointing this out)
* ggsave: current device no longer closes if error occurs
* position_jitter: now works correctly with 0 jitter
* remove_missing: some statistics were calculated incorrectly when missing
values were present
* scales: extra scales ignored (again)
* scales: legends respect fixed parameters of the layer
* scales: legends won't appear when aesthetics are mapped to NULL, or set to fixed value
* scales: xend and yend now transformed correctly
* scale_date: breaks are now rounded to correct position
New functionality
* geom_point: can now control colour and fill separately for point glyphs with
borders
* geom_step: now has parameter direction which can take values vh (vertical
then horizontal) or hv (horizontal then vertical) describing the shape of the
stairs
* qplot: new asp argument to set aspect ratio
* qplot: now captures the environment in which it was run, which should make
it much more robust at finding the variables you expect it to find
* qplot: now treats any arguments wrapped in I() as parameters, not
aesthetics, e.g. qplot(mpg, wt, data=mtcars, colour = I("red")) or
qplot(mpg, wt, data=mtcars, size = I(5))
* scale_continuous: new minor_breaks argument to controls position of minor
breaks
* scale_discrete: new discrete position scales which make it possible to
manually position elements
* scale_gradientn: new colour scale which creates gradient between any list of
colours
More consistent interfaces
* can use color instead of colour, and old R names throughout ggplot2
* geom_jitter: Arguments changed to height and width to match other position
adjustments
* scales: any point outside of limits is dropped (this was previously the
behaviour for discrete scales, but not continuous scales)
* scales: limits are consistent across discrete and continuous scales (limits
c(1, NA) form no longer works for continuous scales)
* scales: order of legends reversed to match order of x axis (and to be
consistent with previous versions)
* scale_date: new limits argument to set axis limits
* scale_discrete: all discrete scales accept breaks argument
* scale_discrete: all discrete scales have limits and labels argument to
better control legends
* scale_discrete: character and logical vectors now reliably treated as
discrete scales
* stat_density2d, geom_density2d: density2d used consistently (instead of
density_2d in some places)
Improved aesthetics
* coord_polar: more tweaks to grid lines to enhance appearance
* coord_polar: new expand argument to control whether axes should be expanded
outside the range of the data
* geom_contour, geom_smooth, geom_quantile: now use blue lines
* position_stack, position_dodge: should be more informative if conditions for
stacking/dodging not met
* position_jitter: default amount of jittering tweaked to align with boxplots
etc.
* scales: background colour of legends key matches plot
* themes: Complete rewrite of theming system, see new book chapter for details
* themes: direct access to plot options via $ is now disabled
Improved documentation and error messages
* facet_grid: documentation improved
* qplot: Better error messages when needed variables are missing
* scale_discrete: improved error message for too many values in domain
* scale_size: improved documentation for discrete variables
* online documentation generally tweaked and primped to work a little better
and look a little nicer
* website now includes a search box
* links from rdoc now point to correct pages
ggplot2 0.6
----------------------------------------------------------------
The two big changes in this release are improved documentation and legends.
* all major ggplot2 components now have their own built in documentation, so
that (e.g.) ?stat_smooth or ?geom_point now give you useful information
* the legend code is now considerably more sophisticated and will attempt to
merge together legends for the same variable
* also, legends are drawn based on the geoms used (instead of the scales
used, as previously) so should match the plot much better (e.g. for
geom_smooth, geom_boxplot, geom_vline, geom_abline, geom_pointrange).
These features are new, so there are likely to be a few bugs that I haven't discovered. Please me know if you discover any.
Other additions and corrections
* coord_equal: should now work correctly in all situations
* coord_polar: add start and direction parameters, giving more control over
the layout of the polar coords
* coord_polar: added my favourite pie chart example
* coord_trans now deals with groups appropriately, at the cost of decreased
speed
* geom_abline, geom_vline, geom_hline: should now behave better in a wider
variety of settings
* geom_boxplot: deals with continuous x-axis and grouping much better
* geom_boxplot: now has it's own legend which actually looks like a boxplot
* geom_boxplot: reports if missing values removed
* geom_crossbar: the middle line is now display thicker than the other lines,
controlled by the parameter fatten (thanks to Heike Hofmann for the
suggestion)
* geom_density: fix scale adjustment bug in geom_density
* geom_line, geom_text: all size measurements (now lines and text as well) are
measured in mm, lines/paths default to paths 0.5mm wide
* geom_rug: new to add marginal rug plots
* geom_smooth: added example showing how to use geom_smooth with your own
models
* geom_smooth: fixed bug where if se=FALSE x axis always includes 0
* geom_vline, geom_hline: yet another rewrite which should make them more
powerful and less error prone.
* ggsave reports width and height of saved image
* position_stack: fixed bug when data was empty
* qplot: allow qplot to use computed aesthetics too
* scale_continuous: tweaks to minor breaks to make appearance better on wider
range of coordinate systems
* scale_discrete: all discrete scales now have labels argument which you can
use to override the factor levels
* scale_discrete: now works correctly with character vectors
* scale_size: changed default range to [0.5, 3] to better reflect new sizing
decisions
* scale_size: legends resize to avoid overlaps
* scale_x_continuous, scale_y_continuous: new convenience functions xlim and
ylim (and zlim) that make it even easier to adjust the limits of the x, y,
and z axes
* stat_bin, geom_area: fixed bug in combination of stat_bin and geom_area that
made it difficult to draw frequency polygons
* stat_bin: fixed bug which resulted in increased counts when the x axis was a
categorical variable with a single level (thanks to Bob Muenchen for
pointing this out!)
* stat_bin: no longer incorrectly warns that binwidth is unspecified when
breaks are set
* stat_bin: now takes origin argument to manually specify origin of first bin
(default is round_any(min(range), bin_width, floor))
* stat_boxplot, stat_contour, stat_density_2d, stat_qq, stat_density: na.rm
parameter added to the following statistics (thanks to Leena Choi for
suggesting this)
* stat_function: new, makes it easy to superimpose a function on the plot
* stat_qq: axes flipped to agree with base R
* stat_qq: now uses sample aesthetic to select variable for summary
* stat_quantile: updated to work with latest version of quantreg
* stat_spoke: new, to make it possible to use geom_segment parameterised by
angle and radius (thanks to Jiho for the suggestion)
* stat_summary: better documentation
* stat_summary: convenient auto wrapping of simple summary functions
Miscellaneous changes:
* it's now easy to change the default scales (and their arguments) with the
set_default_scale function, see ?set_default_scale for more details (thanks
to Bob Muenchen for the suggestion)
* new order aesthetic which controls the order in which elements are plotted
* min and max are now scaled the same way as y
* functions are silently dropped (e.g. aes(colour=col))
* scales do not try and map variables that don't exist (fixes some rather
obscure bugs)
* aes(mpg, wt) is now equivalent to aes(x = mpg, y = wt)
ggplot2 0.5.7
----------------------------------------------------------------
New geoms, scales and aesthetics
* stat_step and geom_step to draw staircase plots (like plot(type="s"))
* order aesthetic (currently only for lines/paths) allows you to control the
drawing order within a group
* scale_manual makes it easier to let ggplot uses the exact
colours/sizes/linetypes that you want
* scale_reverse allows you to reverse the scale of x and y axes
* scale_grey is a new black and white scale for categorical data (colour and
fill)
Improved options handling
* new function opts() to allow modification of plot options by addition
* update(p, theme_bw) and p + theme_bw now work
These changes mean that you can modify plot options in the same way that you modify all other aspects of the plot, e.g. qplot(mpg, wt, data=mptcars) + opts(title = "Fuel economy vs weight")
Improved documentation
* many tweaks to the online documentation, particular including the actual
code you need to run for each object!
* every page now has a link to a form where you can submit feedback on exactly
you do or don't like about a page
* required aesthetics now listed in documentation
* geom_polygon now has a decent example
* numerous minor corrections suggested by Jörg Beyer
* separated plotting advice from details of plot construction (what vs how),
thanks to Bert Gunter for this suggestion
Improved map projections (with coord_map)
* coord_map defaults to orientation = c(90, 0, mean(range(y))) - this ensures
that multiple layers line up correctly, but means you will have to specify
the orientation yourself for many projections
* coord_map now respects limits set by scales
* removed useless ticks from coord_map
If you're using ggplot to draw maps and have thought of other features that would make your life easier, please let me know.
Bug fixes
* adding data and aesthetics in separate steps should now work
* layers with set parameters will not use mapped aesthetics
* use LazyLoad: false instead of SaveData: true for better future
compatability
* coord_cartesian: fixed bug that prevented you from overriding the default
axis expansion
* coord_equal: now scales correctly if ratio < 1
* geom_abline: fix bug where slope was ignored
* geom_jitter now works correctly with groups and categorical values (was
actually a bug in how scale_discrete deals with continuous values)
* geom_path: automatically switch between polylineGrob and segmentsGrob when
drawing paths so that setting line type now works properly
* geom_segment now uses both ends of segments to calculate axis limits
* plotmatrix: fix bug in scatterplot matrix where all scatterplots were
transposed!
* qplot: should now work better within functions
* quickplot added as an alias of qplot, to avoid confusion with qunif, etc
* scale_*: better error message if you add a scale without a matching
aesthetic mapping in the plot
* scale_identity no longer converts everything to character
* scale_identity: grob argument renamed to guide
* stat_*: made all statistics more robust to errors
* stat_quantile: fixed bug when only drawing a single quantile
* stat_smooth: returns silently if <2 non-missing data points
Minor aesthetic improvements
* coord_polar now specifies aspect.ratio by default, and I've made a few other
tweaks to make polar coordinates plot look nicer
* geom_bar no longer draws gray borders by default, but instead uses the same
colour as fill (this eliminates a tiny gap between neighbouring bars)
* plotmatrix: tweaks to improve display of scatterplot matrix
* scale_brewer: added option to reverse palette
* scale_colour: colour and fill legends now look exactly the same (previously
colour was missing a grey border)
* scale_discrete has slightly larger expansion (0.75 vs 0.5)
* stat_bar: only output bars with > 0 count
ggplot2 0.5.6
----------------------------------------------------------------
Improved error messages and other notifications:
* all geoms and position adjustments should now give an informative error
message when required aesthetics are missing
* better error messages if data not a data frame, or mapping not created by
aes or aes_string
* better errors for qplot when variables missing or data invalid
* better error if somehow you are missing necessary scales
* stat_bin informs you of the default choice of binwidth
* stat_smooth gives helpful error messages for common problems
* printing a geom now displays the data set that it uses (if not the default)
Other improvements:
* colour and fill legends now surround by background plot colour
* can now draw arrow heads with geom_segment, and have added an example
demonstrating drawing a vector field
* density plots should always include 0 on y axis
* default boxplot outlier changed colour to black
* stat_smooth supports categorical variables a little better
* implemented hash methods for all ggplot objects. This is the first step in
making it easier for me to compare all examples between versions for quality
control purposes
New data:
* seals, contributed by David Brillinger and Charlotte Wickham, used for
vector field example
Bug fixes:
* geoms hline, vline and abline now all work correctly when a grouping variable is used
* block histograms (where individuals are identifiable) now work correctly
* all ggplot objects should now print properly from the command line
* fixed bug in geom_path when only 1 point
* segments geom now works correctly for more coordinate systems
* order variables in scatterplot matrix by order of variables in data.frame
* geom_density deals with missing values correctly when displaying scaled densities
* fixed bug in calculating categorical ranges
* fixed bug in drawing error bars
Subtractions
* now relies on R 2.6
* removed grid.gedit and grid.gremove, and code replaced by grid.ls
ggplot2 0.5.5
----------------------------------------------------------------
Improvements:
* ggplot now gives rather more helpful errors if you have misspecified a
variable name in the aesthetic mapping
* changed default hline and vline intercepts to 0
* added "count" output variable from stat_density for creating
stacked/conditional density plots
* added parameters to geom_boxplot to control appearance of outlying points
* overriding aesthetics with fixed values that have already been set with
aesthetics now actually works
* slightly better names for xaxis and yaxis grobs
* added aes_string function to make it easier to construction aesthetic
mapping specifications in functions
* continuous scales now have labels argument so that you can manually specify
labels if desired
* stat_density now calculates densities on a common grid across groups. This
means that position_fill and position_stack now work properly
* if numeric, legend labels right aligned
* polar coordinates much improved, and with better examples
Documentation:
* fixed argument documentation for qplot
* added (very) rudimentary documentation about what functions return
* documentation now lists extra variables created by statistics
Bug fixes:
* coord_flip now works with segment and all interval geoms
* geom_errorbar now works in all coordinate systems
* derived y axes (eg. on histogram) are now labelled correctly
* fixed bug in stat_quantile caused by new output format from predict.rq
* fixed bug if x or y are constant
* fixed bug in histogram where sometimes lowest bar was omitted
* fixed bug in stat_qq which prevent setting aesthetics
* fixed bug in qplot(..., geom="density", position="identity")
* fixed stat_qq so that unnecessary arguments are no longer passed to the
distribution function
Subtractions:
* removed grid argument from ggsave, replaced by ggtheme(theme_bw)
* removed add argument from qplot
ggplot2 0.5.4
----------------------------------------------------------------
* border now drawn on top of geoms, instead of below - this results in better
appearance when adjusting scale limits
* ggplot() + aes() now modifies existing default aesthetic mapping, rather
than overwriting
* polish examples in facet_grid
ggplot2 0.5.3
----------------------------------------------------------------
* added experimental scatterplot matrix, see ?plotmatrix
* added new border.colour and grid.minor.colour options for better control
over plot apperance
* updated theme_bw to do better when drawing a plot with white background
* better default colour choices for gradients (and more discussion in examples)
* fixed bug in ScaleGradient2 where scales with different positive and
negative ranges were not scaled correctly
* allow expressions as result from strip.text
* fixed rare bug in geom_vline and geom_hline
* fixed example in geom_abline
* tweaked display of multiline axis labels
ggplot2 0.5.2
----------------------------------------------------------------
* add argument to position dodge so it's now possible to accurately dodge things with different widths to their physical widths
* added median summary
New examples:
* logistic regression example in stat_smooth
Bugs fixed:
* evaluation of arguments to layer is no longer delayed
* can use categorical xseq with stat_smooth
* x and y axes named incorrectly (thanks to Dieter Menne for spotting this)
* can now pass position objects to qplot
* y jitter calculated correctly, and jittered data rescales axis now
* removed silly legend from quantile plot
* extra arguments not being passed on to geoms/stats
* fixed bug in stat_summary when summarising a factor
* fixed bugs in stat_summary, geom_ribbon, and coord_trans examples
ggplot2 0.5.1
----------------------------------------------------------------
* renamed scale_manual to scale_identity to map position_identity and
stat_identity
* ensured all grob consistently named
* renamed aesthetics argument to mapping to be consistent with description in
book
* added useful utilities for modifying grobs
* bug fixes to x axis range with interval geoms
* added ability to turn legend off for single scale (currently undocumented)
* added economics data set and matching examples
ggplot2 0.5
----------------------------------------------------------------
* complete rewrite of ggplot code base
* id/grouping completely rewritten so that automatically grouped when any of
the aesthetics is a categorical variable.This behaviour is defined in the
Grammar of Graphics, and makes things like qplot(wt, data=mtcars,
geom="density", colour=factor(cyl)) work nicely
|