geom_density_2d(mapping = NULL, data = NULL, stat = "density2d",
  position = "identity", lineend = "butt", linejoin = "round",
  linemitre = 1, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE,
  ...)stat_density_2d(mapping = NULL, data = NULL, geom = "density_2d",
  position = "identity", contour = TRUE, n = 100, h = NULL,
  na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, ...)
FALSE (the default), removes missing values with
a warning.  If TRUE silently removes missing values.NA, the default, includes if any aesthetics are mapped.
FALSE never includes, and TRUE always includes.FALSE, overrides the default aesthetics,
rather than combining with them. This is most useful for helper functions
that define both data and aesthetics and shouldn't inherit behaviour from
the default plot specification, e.g. layer. There are
  three types of arguments you can use here:
color = "red"orsize = 3.geom_density_2d and stat_density_2d.TRUE, contour the results of the 2d density
estimationNULL, estimated
using bandwidth.nrd.Same as stat_contour
}
set.seed(4393) dsmall <- diamonds[sample(nrow(diamonds), 1000), ] d <- ggplot(dsmall, aes(x, y)) # If you map an aesthetic to a categorical variable, you will get a # set of contours for each value of that variable d + geom_density_2d(aes(colour = cut))
# If we turn contouring off, we can use use geoms like tiles:
d + stat_density_2d(geom = "raster", aes(fill = ..density..), contour = FALSE)
# Or points:
d + stat_density_2d(geom = "point", aes(size = ..density..), n = 20, contour = FALSE)
geom_contour for contour drawing geom,
 stat_sum for another way of dealing with overplotting