ggplot.default            package:ggplot            R Documentation

_C_r_e_a_t_e _a _n_e_w _p_l_o_t

_D_e_s_c_r_i_p_t_i_o_n:

     Create a new ggplot plot

_U_s_a_g_e:

     ggplot.default(data = NULL, formula = . ~ ., margins=FALSE, aesthetics=list(), ...)

_A_r_g_u_m_e_n_t_s:

    data: default data frame

 formula: formula describing row and column layout, see 'reshape' for
          more details

 margins: a vector of names giving which margins to display, can
          include grand_row and grand_col or uss TRUE to display all
          margins

aesthetics: default list of aesthetic mappings (these can be colour,
          size, shape, line type - see individual grob functions for
          more details)

     ...: 

_D_e_t_a_i_l_s:

     This function creates the basic ggplot object which you can then
     furnish with graphical objects.  Here you will set up the default
     data frame, default aesthetics and the formula that will determine
     how the panels are broken apart.  See 'reshape' for more details
     on specifying the facetting formula and margin arguments. Note
     that ggplot creates a plot object without a "plot": you need to
     grobs (points, lines, bars, etc.) to create something that you can
     see.

     To get started, read the introductory vignette:
     'vignette("introduction", "ggplot")'

     Steps to create a plot:

        1.  Create a new plot.  ('p <- ggplot(mtcars,
           aesthetics=list(y=hp, x=mpg))')

        2.  Set scales (if necessary)

        3.  Add grobs to the plot ('ggpoint(p)')

     or, use 'qplot'

     Simple grobs:

        *  'ggabline': line with given slope and intercept

        *  'ggarea': area (polygons with base on y=0)

        *  'ggbar': bars (stocked and dodgted)

        *  'ggjitter': jittered points (useful for discrete data)

        *  'ggline': lines (paths sorted by x-axis values)

        *  'ggpath': paths

        *  'ggpoint': points

        *  'ggribbon': ribbon

        *  'ggtext': text

        *  'ggtile': tiles, like a levelplot

     Complex grobs:

        *  'ggboxplot': box plot

        *  'ggcontour': contour lines

        *  'ggdensity': 1d density plot (continuous analogue of
           histogram)

        *  'gg2density': 2d density countours

        *  'gghistogram': histogram

        *  'ggquantile': quantile lines from a quantile regression

        *  'ggsmooth': smooths from any model family

     Look at the documentation of these objects to see many examples of
     ggplot in action.

     You will also want to add scales to the basic plot to give finer
     control over how the data values are mapped to aethetics
     attributes of the grobs. For scales that control position of the
     points see:

        *  'pscontinuous': continuous scales (with optional
           transformation)

        *  'pscategorical': categorical scales

     For other scales, see:

        *  'sccolour': colour categorical variables using Brewer colour
           scales (see also 'scfill')

        *  'scgradient': colour continuous scales with a gradient (see
           also 'scfillgradient')

        *  'schcl': map continuous variable to hue, chroma or luminance
           components (see also 'scfillhcl')

        *  'schsv': map continuous variable to hue, saturation or value
           components (see also 'scfillhsv')

        *  'scmanual': no automatic conversion, uses raw values
           directly

        *  'sclinetype': line type (solid, dashed, dotted, etc.)

        *  'scrgb': map continuous variable to red, green or blue
           components (see also 'scfillrgb')

        *  'scshape': point shape (glyph)

        *  'scsize': point or line size

     ggplot is different from base and lattice graphics in how you
     build up the plot. With ggplot you build up the plot object
     (rather than the plot on the screen as in base graphics, or all at
     once as in lattice graphics.)

     Each of the grob and scale functions adds the grob to the plot and
     returns the modified plot object.  This lets you quickly
     experiment with different versions of the plot, using different
     grobs or scales.  You can see how this works in the examples

     You can also use 'summary' to give a quick description of a plot.

     If you want to change the background colour, how the panel strips
     are displayed, or any other default graphical option, see 'ggopt'.

_A_u_t_h_o_r(_s):

     Hadley Wickham <h.wickham@gmail.com>

_S_e_e _A_l_s_o:

     <URL: http://had.co.nz/ggplot>, 'stamp', 'reshape', 'ggopt',
     'vignette("introduction", "ggplot")'

_E_x_a_m_p_l_e_s:

     p <- ggplot(tips)
     summary(p)
     ggpoint(p, aesthetic=list(y = tip, x=total_bill))
     p <- ggplot(tips, aesthetic=list(y = tip, x=total_bill))
     p$title <- "Tips"
     summary(p)
     ggpoint(p)
     ggpoint(p, colour="darkgreen", size=3)
     ggpoint(p, list(colour=sex))
     ggpoint(ggplot(tips, . ~ sex,aesthetics = list(y = tip, x = total_bill)))
     p <- ggplot(tips, smoker ~ sex,aesthetics = list(y = tip, x = total_bill))
     ggpoint(p)
     ggsmooth(ggpoint(p))
     ggsmooth(ggpoint(p), method=lm, formula=y~x)
     ggabline(ggpoint(p), slope=c(0.1,0.15,0.2))
     (p2 <- ggabline(ggpoint(p, aes=list(colour=tip/total_bill)), slope=c(0.1,0.15,0.2)))
     summary(p2)
     scgradient(p2)
     scgradient(p2, midpoint=0.15, high="green", mid="yellow")

     p<-ggplot(tips, sex ~ smoker, aesthetics=list(x=tip/total_bill), margins=TRUE)
     gghistogram(p)
     gghistogram(p,scale="density", breaks=seq(0,1, length=20))
     ggdensity(gghistogram(p))

     p<-ggplot(tips, . ~ smoker, aesthetics=list(x=sex, y=tip))
     ggboxplot(p)
     ggjitter(ggboxplot(p))

