ggplot2 can not draw true 3d surfaces, but you can use geom_contour
and geom_tile()
to visualise 3d surfaces in 2d. To be a valid
surface, the data must contain only a single row for each unique combination
of the variables mapped to the x
and y
aesthetics. Contouring
tends to work best when x
and y
form a (roughly) evenly
spaced grid. If your data is not evenly spaced, you may want to interpolate
to a grid before visualising.
geom_contour( mapping = NULL, data = NULL, stat = "contour", position = "identity", ..., bins = NULL, binwidth = NULL, breaks = NULL, lineend = "butt", linejoin = "round", linemitre = 10, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE ) geom_contour_filled( mapping = NULL, data = NULL, stat = "contour_filled", position = "identity", ..., bins = NULL, binwidth = NULL, breaks = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE ) stat_contour( mapping = NULL, data = NULL, geom = "contour", position = "identity", ..., bins = NULL, binwidth = NULL, breaks = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE ) stat_contour_filled( mapping = NULL, data = NULL, geom = "polygon", position = "identity", ..., bins = NULL, binwidth = NULL, breaks = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE )
mapping | Set of aesthetic mappings created by |
---|---|
data | The data to be displayed in this layer. There are three options: If A A |
stat | The statistical transformation to use on the data for this layer, as a string. |
position | Position adjustment, either as a string, or the result of a call to a position adjustment function. |
... | Other arguments passed on to |
bins | Number of contour bins. Overridden by |
binwidth | The width of the contour bins. Overridden by |
breaks | Numeric vector to set the contour breaks.
Overrides |
lineend | Line end style (round, butt, square). |
linejoin | Line join style (round, mitre, bevel). |
linemitre | Line mitre limit (number greater than 1). |
na.rm | If |
show.legend | logical. Should this layer be included in the legends?
|
inherit.aes | If |
geom | The geometric object to use display the data |
geom_contour()
understands the following aesthetics (required aesthetics are in bold):
x
y
alpha
colour
group
linetype
size
weight
Learn more about setting these aesthetics in vignette("ggplot2-specs")
.
stat_contour()
understands the following aesthetics (required aesthetics are in bold):
x
y
z
group
order
Learn more about setting these aesthetics in vignette("ggplot2-specs")
.
height of contour
height of contour, scaled to maximum of 1
contour piece (an integer)
geom_density_2d()
: 2d density contours
# \donttest{ # use geom_contour_filled() for filled contours v + geom_contour_filled()# Setting bins creates evenly spaced contours in the range of the data v + geom_contour(bins = 2)v + geom_contour(bins = 10)# Setting binwidth does the same thing, parameterised by the distance # between contours v + geom_contour(binwidth = 0.01)v + geom_contour(binwidth = 0.001)v + geom_contour(colour = "red")# }