https://github.com/cran/sjPlot
Raw File
Tip revision: 2faf997c3cf962566c949e74e58889282855ad9f authored by Daniel Luedecke on 10 September 2014, 11:38:24 UTC
version 1.5
Tip revision: 2faf997
sjp.scatter.Rd
\name{sjp.scatter}
\alias{sjp.scatter}
\title{Plot (grouped) scatter plots}
\usage{
sjp.scatter(x, y, grp = NULL, title = NULL, titleSize = 1.3,
  titleColor = "black", legendTitle = NULL, legendLabels = NULL,
  axisTitle.x = NULL, axisTitle.y = NULL, axisTitleColor = "black",
  axisTitleSize = 1.3, axisTickMarkSize = 1, axisTickMarkColor = "grey50",
  breakTitleAt = 50, breakLegendTitleAt = 20, breakLegendLabelsAt = 20,
  pointAlpha = 0.5, pointSize = 3, pointColors = NULL,
  legendPos = "right", legendSize = 1, legendBorderColor = "white",
  legendBackColor = "white", showTickMarkLabels.x = TRUE,
  showTickMarkLabels.y = TRUE, showTickMarks = TRUE,
  majorGridColor = NULL, minorGridColor = NULL, hideGrid.x = FALSE,
  hideGrid.y = FALSE, borderColor = NULL, axisColor = NULL,
  showGroupFitLine = FALSE, showTotalFitLine = FALSE, showSE = FALSE,
  fitmethod = "lm", useJitter = FALSE, autojitter = TRUE,
  jitterRatio = 0.15, showRug = FALSE, hideLegend = FALSE, theme = NULL,
  useFacetGrid = FALSE, printPlot = TRUE)
}
\arguments{
  \item{x}{A vector (variable) indicating the x positions.}

  \item{y}{A vector (variable) indicating the y positions.}

  \item{grp}{A grouping variable. If not \code{NULL}, the
  scatter plot will be grouped. See examples below. Default
  is \code{NULL}, i.e. not grouping is done.}

  \item{title}{Title of the diagram, plotted above the
  whole diagram panel.  Use \code{"auto"} to automatically
  detect variable names that will be used as title (see
  \code{\link{sji.setVariableLabels}}) for details).}

  \item{titleSize}{The size of the plot title. Default is
  1.3.}

  \item{titleColor}{The color of the plot title. Default is
  \code{"black"}.}

  \item{legendTitle}{Title of the diagram's legend.}

  \item{legendLabels}{Labels for the guide/legend.}

  \item{axisTitle.x}{A label (title) for the x axis.  Use
  \code{"auto"} to automatically detect variable names that
  will be used as title (see
  \code{\link{sji.setVariableLabels}}) for details).}

  \item{axisTitle.y}{A label (title) for the y axis.  Use
  \code{"auto"} to automatically detect variable names that
  will be used as title (see
  \code{\link{sji.setVariableLabels}}) for details).}

  \item{axisTitleColor}{The color of the x and y axis
  labels. Refers to \code{axisTitle.x} and
  \code{axisTitle.y}, not to the tick mark or category
  labels.}

  \item{axisTitleSize}{The size of the x and y axis labels.
  Refers to \code{axisTitle.x} and \code{axisTitle.y}, not
  to the tick mark or category labels.}

  \item{axisTickMarkSize}{The size of tick mark values of
  both x and y axis. Default is 1, recommended values range
  between 0.5 and 3.0}

  \item{axisTickMarkColor}{User defined color for tick mark
  values. If not specified, a default mid gray color will
  be used for the labels.}

  \item{breakTitleAt}{Wordwrap for diagram title.
  Determines how many chars of the title are displayed in
  one line and when a line break is inserted into the
  title.}

  \item{breakLegendTitleAt}{Wordwrap for diagram legend
  title. Determines how many chars of the legend's title
  are displayed in one line and when a line break is
  inserted.}

  \item{breakLegendLabelsAt}{Wordwrap for diagram legend
  labels. Determines how many chars of the legend labels
  are displayed in one line and when a line break is
  inserted.}

  \item{pointAlpha}{The alpha values of scattered points.
  Useful to better cope with overplotting. Default is 0.5}

  \item{pointSize}{The size of scattered points.}

  \item{pointColors}{The color(s) of scattered points. If
  \code{grp} is not \code{NULL}, groups are indicated by
  different colors, thus a vector with multiple color
  values has to be supplied. By default, the \code{Set1}
  palette of diverging palette type is chosen (see
  \url{http://colorbrewer2.org}).}

  \item{legendPos}{The position of the legend, if a legend
  is drawn. Use \code{"bottom"}, \code{"top"},
  \code{"left"} or \code{"right"} to position the legend
  above, below, on the left or right side of the diagram.
  Right positioning is default.}

  \item{legendSize}{The text size of the legend. Default is
  1. Relative size, so recommended values are from 0.3 to
  2.5}

  \item{legendBorderColor}{Color of the legend's border.
  Default is \code{"white"}, so no visible border is
  drawn.}

  \item{legendBackColor}{Fill color of the legend's
  background. Default is \code{"white"}, so no visible
  background is drawn.}

  \item{showTickMarkLabels.x}{Whether x axis tick mark
  labels should be shown or not.}

  \item{showTickMarkLabels.y}{Whether y axis tick mark
  labels should be shown or not.}

  \item{showTickMarks}{Whether tick marks of axes should be
  shown or not.}

  \item{showGroupFitLine}{If \code{TRUE}, a fitted line for
  each group is drawn. See \code{fitmethod} to change the
  fit method of the fitted lines.}

  \item{showTotalFitLine}{If \code{TRUE}, a fitted line for
  the overall scatterplot is drawn. See \code{fitmethod} to
  change the fit method of the fitted line.}

  \item{showSE}{If \code{TRUE}, a shaded region indicating
  the standard error of the fitted lines will be added.}

  \item{fitmethod}{By default, a linear method
  (\code{"lm"}) is used for fitting the fit lines. Possible
  values are for instance: \itemize{ \item \code{"lm"}
  \item \code{"glm"} \item \code{"loess"} \item
  \code{"auto"} } (see
  \url{http://docs.ggplot2.org/current/stat_smooth.html}
  for more details).}

  \item{useJitter}{If \code{TRUE}, points will be jittered
  (to avoid overplotting).}

  \item{autojitter}{If \code{TRUE}, points will be jittered
  according to an overlap-estimation. A matrix of \code{x}
  and \code{y} values is created and the amount of cells
  (indicating a unique point position) is calculated.  If
  more than 15\% (see \code{jitterRatio}) of the
  approximated amount of unique point coordinates seem to
  overlap, they are automatically jittered.}

  \item{jitterRatio}{The ratio of tolerated overlapping
  (see \code{autojitter}). If approximated amount of
  overlapping points exceed this ration, they are
  automatically jittered. Default is 0.15. Valid values
  range between 0 and 1.}

  \item{showRug}{If \code{TRUE}, a marginal rug plot is
  displayed in the graph (see
  \url{http://docs.ggplot2.org/current/geom_rug.html} for
  more details).)}

  \item{hideLegend}{Indicates whether legend (guide) should
  be shown or not.}

  \item{borderColor}{User defined color of whole diagram
  border (panel border).}

  \item{axisColor}{User defined color of axis border (y-
  and x-axis, in case the axes should have different colors
  than the diagram border).}

  \item{majorGridColor}{Specifies the color of the major
  grid lines of the diagram background.}

  \item{minorGridColor}{Specifies the color of the minor
  grid lines of the diagram background.}

  \item{hideGrid.x}{If \code{TRUE}, the x-axis-gridlines
  are hidden. Default is \code{FALSE}.}

  \item{hideGrid.y}{If \code{TRUE}, the y-axis-gridlines
  are hidden. Default is \code{FALSE}.}

  \item{theme}{Specifies the diagram's background theme.
  Default (parameter \code{NULL}) is a gray background with
  white grids.  \itemize{ \item Use \code{"bw"} for a white
  background with gray grids \item \code{"classic"} for a
  classic theme (black border, no grids) \item
  \code{"minimal"} for a minimalistic theme (no border,gray
  grids) \item \code{"none"} for no borders, grids and
  ticks or \item \code{"themr"} if you are using the
  \code{ggthemr} package (in such cases, you may use the
  \code{ggthemr::swatch} function to retrieve theme-colors
  for the \code{pointColors} parameter) } See
  \url{http://rpubs.com/sjPlot/custplot} for details and
  examples.}

  \item{useFacetGrid}{\code{TRUE} when each scatter plot
  group should be plotted as single facet instead of an
  integrated single graph. Only applies if \code{grp} is
  not \code{NULL}. Each category of \code{grp} will be
  plotted in an own facet.}

  \item{printPlot}{If \code{TRUE} (default), plots the
  results as graph. Use \code{FALSE} if you don't want to
  plot any graphs. In either case, the ggplot-object will
  be returned as value.}
}
\value{
(Insisibily) returns the ggplot-object with the complete
plot (\code{plot}) as well as the data frame that was used
for setting up the ggplot-object (\code{df}).
}
\description{
Display scatter plot of two variables. Adding a grouping
variable to the scatter plot is possible. Furthermore,
fitted lines can be added for each group as well as for the
overall plot.
}
\examples{
# load sample date
data(efc)

# simple scatter plot, auto-jittering
sjp.scatter(efc$e16sex,efc$neg_c_7)

# simple scatter plot, no jittering needed
sjp.scatter(efc$c160age,efc$e17age)

# grouped scatter plot
sjp.scatter(efc$c160age,efc$e17age, efc$e42dep)

# grouped and jittered scatter plot with marginal rug plot
sjp.scatter(efc$e16sex,efc$neg_c_7, efc$c172code, showRug=TRUE)

# grouped and labelled scatter plot
sjp.scatter(efc$c160age,efc$e17age, efc$e42dep, title="Scatter Plot",
            legendTitle=sji.getVariableLabels(efc)['e42dep'],
            legendLabels=sji.getValueLabels(efc)[['e42dep']],
            axisTitle.x=sji.getVariableLabels(efc)['c160age'],
            axisTitle.y=sji.getVariableLabels(efc)['e17age'],
            showGroupFitLine=TRUE)

# grouped and labelled scatter plot as facets
sjp.scatter(efc$c160age,efc$e17age, efc$e42dep, title="Scatter Plot",
            legendTitle=sji.getVariableLabels(efc)['e42dep'],
            legendLabels=sji.getValueLabels(efc)[['e42dep']],
            axisTitle.x=sji.getVariableLabels(efc)['c160age'],
            axisTitle.y=sji.getVariableLabels(efc)['e17age'],
            showGroupFitLine=TRUE, useFacetGrid=TRUE, showSE=TRUE)

# -------------------------------
# auto-detection of labels
# -------------------------------
efc <- sji.setVariableLabels(efc, sji.getVariableLabels(efc))
sjp.scatter(efc$c160age,efc$e17age, efc$e42dep,
            title="auto", axisTitle.x="auto", axisTitle.y="auto")
}
\references{
\itemize{ \item \url{http://rpubs.com/sjPlot/sjpscatter}
\item
\url{http://strengejacke.wordpress.com/sjplot-r-package/} }
}
\seealso{
\code{\link{sjp.lm1}} \cr \code{\link{sjp.reglin}}
}

back to top