Можно использовать функцию stat_ellipse
:
library(ggplot2)
data(iris)
ggplot(iris, aes(x = Sepal.Width, y = Sepal.Length, color = Species)) +
geom_point(size = 2) +
theme_minimal() +
stat_ellipse(geom="polygon", aes(fill = Species),
alpha = 0.2,
show.legend = FALSE,
level = 0.95)
For base R, you can use the scatterplot function from the car package.
library(car)
scatterplot(Sepal.Length ~ Sepal.Width | Species,
ellipse=TRUE, regLine=FALSE, smooth=FALSE, data=iris)
введите описание изображения здесь
На страницах справки есть некоторые пояснения:
ellipse
Управляет отображением эллипсов концентрации данных. Если FALSE (по умолчанию), эллипсы не отображаются. Может быть списком именованных значений, задающих уровни, вектором одного или нескольких уровней двумерного нормального контура вероятности, на которых строятся эллипсы; надежный, логическое значение, определяющее, использовать ли функцию cov.trob в пакете MASS для вычисления центра и матрицы ковариации для эллипсов данных; и fill и fill.alpha, которые контролируют, заполнен ли эллипс и прозрачность заливки. ИСТИНА эквивалентно списку (уровни = c (. 5, .95), надежный = ИСТИНА, fill = TRUE, fill.alpha = 0,2).