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", ..., lineend = "butt", linejoin = "round", linemitre = 10, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE) stat_contour(mapping = NULL, data = NULL, geom = "contour", position = "identity", ..., 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 |
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")
height of contour
geom_density_2d()
: 2d density contours
# 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")