wishlist feature requests - janeshdev/ggplot2 GitHub Wiki
On this page are listed some wish-lists for ggplot2.
New geoms
-
using rasterGrob as an alternative to geom_tile for regular colormapsNow implemented in 0.9.0 -
using a custom grob function that draws a shape with color, fill, size arguments (think Chernoff faces, or TeachingDemos::my.symbols())
-
horizontal versions of all geoms which are not not x/y symmetric: geom_area, geom_bar, geom_boxplot, geom_crossbar, geom_density, geom_freqpoly, geom_histogram, geom_pointrange, geom_linerange, geom_quantile, geom_ribbon, and geom_smooth.
-
geom_dotplot (Cleveland). The current hack with geom_point just doesn't cut it.First implementation in 0.9.0 -
using Delaunay or Voronoi tesselations to display 2D colormaps of irregular data (see latticeExtra::panel.levelplot.voronoi; packages deldir, Triangle)
-
geom_brokenpath that plays the role of type="b" in base graphics (a la
gridExtra::barbedGrob
). In addition, new stat functions that perform the following tasks: cut a path in equispaced segments, add zero-crossing points to shade positive/negative areas
General infrastructure
-
should themes affect the default colour and fill scales? (e.g. a black and white theme could set the default scales to grey)
-
allow layers to define their own mapping: instead of a generic scale_colour() that applies to all layers, you could have multiple colour scales (or others) in the same plot, each with its own legend.
-
a new kind of geom limited to the use with annotate(), for grobs that are not meant to be mapped to x, y, size, etc. (examples: image annotation, table annotation, etc.)Now annotation_custom, annotation_raster and annotation_map in 0.9.0. -
specification of the panel sizes in absolute units, so as to allow alignment between different plots using grid
-
Allowing a range to be specified on an axis, as kludged together here and here extended in a way described here. In other words, the range would get passed as a start and end coordinate, and a geom_ would be specified elsewhere to determine whether that axis range gets drawn as a brace, box, line, etc. An extension to the extension would be that if both x and y ranges were specified, to draw the braces on the axis and a box highlighting that area on the plot itself.
-
Complete horizontal/vertical agnosticism. Anything that can be done on the x-axis can just as easily be done on the y-axis. This would eliminate the need for
coord_flip()
and the headaches it causes. Some details of what this entails are listed in stats and geoms.
Facets
-
ability to specify independently the limits, tick marks, and labels of each panel
-
ability to set only 1 limit for a scale, and allow the other to be determined by the training, possibly differently for each facet
-
ability to automatically spread facets over multiple pages and specify number of facets per page (like lattice module). Eg 32 individual graphs spread over 4 pages if request rows=3 and cols=3 in proportions= 9 + 9 + 9 + 5. Presently can only do this by splitting data and using FOR loop. Easier to use lattice!
New stats
-
stack vertically multiple spectra or time series so as to avoid overlap between individual lines
-
stats that can operate on the vertical dimension, not just the horizontal one (stat_bin, stat_boxplot, stat_density, stat_quantile, stat_smooth, stat_summary)
Visual aspect
- more options to change the x and y axis parameters independently (grid lines, tick length, etc.)
Themes
see also https://github.com/hadley/ggplot2/wiki/Themes
Integration with other graphic packages
-
facilitate navigation to viewports and use of native units
-
allow switching off clipping to move graphical elements outside the plotting region
New plot types
- Linked micromaps
- mailing list discussion
- National Cancer Institute Geographic Information Systems software
- Daniel Carr, Anthony Olsen, Jean-Yves Courbois, Suzanne Pierson, D. Andrew Carr, "Linked Micromap Plots: Named and Described", Statistical Computing & Statistical Graphics Newsletter 9 (1) 24-32.
New scales
- color scale where hue, luminance/lightness, and chroma/intensity can each be mapped separately as aesthetics
New positions
-
deterministic
position_jitter
so that two geoms with the same set of starting points get jittered to the same locations (say a point and errorbar, or point and text) -
position_beeswarm
, discussed on the mailing list -
dodging in the vertical direction: mailing list discussion