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 colormaps Now 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

New scales

  • color scale where hue, luminance/lightness, and chroma/intensity can each be mapped separately as aesthetics

New positions