📜  R中带有ggally的平行坐标图

📅  最后修改于: 2022-05-13 01:54:39.001000             🧑  作者: Mango

R中带有ggally的平行坐标图

要分析和可视化高维数据,可以使用平行坐标。背景由 n 条平行线组成,通常垂直且间隔均匀,以显示 n 维空间中的一组点。 n维空间中的一个点由一条多段线表示,其顶点位于平行轴上;该点的第 i坐标对应于顶点在第 i轴上的位置。

这种表示类似于时间序列可视化,除了它用于没有自然顺序的数据,因为轴与时间点不相关。因此,可能对几个轴布局感兴趣。

R编程语言中带有ggally的平行坐标图

在 R 编程语言中,使用ggally包和ggparcoord()函数可以创建最简单的基本平行坐标图。

输入数据集必须是包含多个数值变量的数据框,每个变量都将用作图表上的垂直轴。函数的 columns 参数指定这些变量的列数。

使用 IRIS 数据绘制平行坐标图

在这里,我们将使用 iris 数据集绘制平行坐标图,为此我们将从该数据集创建数据框,然后我们将使用 ggparcoord() 方法绘制平行坐标图。

R
# libraries
library(GGally)
 
# default data in R
data <- iris
 
# glimpse of the data
head(data)
 
# plotting the Parallel Coordinates
ggparcoord(data, # data
           columns = 1:3, # plotting first 3 columns
           groupColumn = 5) # target parameter


R
# Libraries
library(GGally)
library(viridis)    # provide the color palette
library(hrbrthemes) # provides themes for axis and plot
 
# default data in R
data <- iris
 
# glimpse of the data
head(data)
 
# plotting the Parallel Coordinates
ggparcoord(data, # data
           columns = 1:3, # plotting first 3 columns
           alphaLines = .4, # transparency of the color
           groupColumn = 5, order = "anyClass",
           showPoints = TRUE) +
  theme(
    plot.title = element_text(size=10)
  )


输出:

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

自定义主题和颜色

为了自定义绘图中的主题和颜色,我们将使用viridis 和 hrbrthemes包作为调色板和主题用于轴和绘图。

R

# Libraries
library(GGally)
library(viridis)    # provide the color palette
library(hrbrthemes) # provides themes for axis and plot
 
# default data in R
data <- iris
 
# glimpse of the data
head(data)
 
# plotting the Parallel Coordinates
ggparcoord(data, # data
           columns = 1:3, # plotting first 3 columns
           alphaLines = .4, # transparency of the color
           groupColumn = 5, order = "anyClass",
           showPoints = TRUE) +
  theme(
    plot.title = element_text(size=10)
  )

输出:

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa