Визуализация кластеров с использованием Hull Plots в ggplot2 с использованием ggforce

Опубликовано: 20 Февраля, 2023

Графики HULL также известны как сгруппированные графики рассеяния, потому что эти графики используются для разделения графиков рассеяния на основе кластеров. Графики Халла гораздо полезнее, когда нужно визуализировать кластеры, присутствующие среди данных. Графики Халла в R можно построить с помощью функции geom_mark_hull(), которая присутствует в пакете ggforce.

Синтаксис метода geom_mark_hull()

Syntax: geom_mark_hull(mapping,data,concavity,radius,position)

Where,

  • mapping – set of aesthetic mappings created by aes() function
  • data – The data frame to be displayed
  • concavity – used to set the cancaveity of thehull
  • radius – used to specify corner radius
  • position – used to adjust the position.

Шаги для визуализации кластеров с использованием Hull Plot

Шаг 1: Во-первых, нам нужно установить необходимые пакеты (ggplot2, ggforce) и загрузить их.

R




# Insrall Required Packages
install.packages("ggplot2")
install.packages("ggforce")
  
# Load the installed Packages
library(ggplot2)
library(ggforce)

Шаг 2: Затем нам нужно построить базовую диаграмму рассеяния, используя функцию ggplot() в пакете ggplo2.

R




# Load the default dataset (iris)
data(iris)
  
# Plotting the scatter plot using ggplot2 package
fig1<-ggplot2::ggplot(aes
                      (Sepal.Length,Sepal.Width),
                      data=iris)+geom_point()
print(fig1)

Выход:

Шаг 3: Позже мы добавим корпуса (кластеры) к этому точечному графику, используя функцию geom_mark_hull() в пакете ggforce.

R




# Load the default dataset (iris)
data(iris)
  
# Plotting the scatter plot using ggplot2 package
fig1<-ggplot2::ggplot(aes(Sepal.Length,Sepal.Width),data=iris)+geom_point()
  
# Plotting the Hull Plot using gggforce package
fig2 <- fig1 + ggforce::geom_mark_hull
    (aes(fill=Species,label=Species),
             concavity=2)
  
print(fig2)

Выход:

Шаг 4: Мы также можем настроить график корпуса в R, используя функцию labs() пакета ggforce, чтобы добавить метки к графику, а с помощью expand_limits() мы можем расширить пределы значений осей x и y, которые необходимо учитывать для построения графика. график.

R




# Load the default dataset (iris)
data(iris)
  
# Plotting the scatter plot using ggplot2 package
fig1<-ggplot2::ggplot(aes
   (Sepal.Length,Sepal.Width),data=iris)+geom_point()
  
# Plotting the Hull Plot using gggforce package
fig2 <- fig1 + ggforce::geom_mark_hull(aes
          (fill=Species,label=Species),concavity=2)
  
# Customized Hull Plot
fig3 <- fig2 + ggforce::geom_mark_hull
    (aes(fill=Species,label=Species),concavity=2)+
       expand_limits(x=8.5,y=5.0)+
       labs(title="Customized Hull Plot using R",
            subtitle = "Iris Dataset",
            x="Sepal Length",y="Sepal Width")
  
print(fig3)

Выход: