R语言 马赛克图
马赛克图是用来显示分为两个或多个条件分布的表格的对称性的。马赛克图是可视化分层数据的一个好方法。一个矩形的集合代表了所有要可视化的元素,不同大小和颜色的矩形构成了一个表格,但这些马赛克图的独特之处在于元素的排列,在有层次的地方那些元素被收集在一起并被标注,甚至可能有子类别。因此,马赛克图可以非常有效地用于绘制分类数据,数据的面积显示出相对比例。
在这篇文章中,我们将学习如何在R编程语言中创建一个马赛克图。用于此的软件包是 vcd
方法1:使用mosaic()函数
用于在R编程语言中创建马赛克图的函数是mosaic()。
语法
mosaic(x,shade=NULL,legend=NULL, main=NULL,…)
参数
- x: 这里,x指向保存数据集/表的变量。我们在这里传递了我们的数据集名称。
- shade: shade是一个布尔变量,如果它被设置为真,那么我们将得到一个彩色的图表。它的默认值是NULL。
- legend: 图例是一个布尔变量,如果它被设置为真,那么我们将能够在我们的马赛克图旁边看到图例。它的默认值是NULL。
- main: main是一个字符串变量,在这里我们传递的是我们的马赛克图的标题。
要创建一个绘图,首先要将软件包加载到空间,并创建数据集。创建的数据集被传递给函数。
例1 :
library('vcd')
# creating a random dataset
# creating 6 rows
data_values <- matrix(c(80, 10, 15,
70, 86, 18,
60, 30, 12,
90, 20, 25,
60, 96, 88,
50, 20, 32))
# creating dataset with above values
data <- as.table(
matrix(
data_values,
# specifying the number of rows
nrow = 6,
byrow = TRUE,
# creating two lists one for rows
# and one for columns
dimnames = list(
Random_Rows = c('A','B','C', 'D', 'E', 'F'),
Random_Columns = c('col_1', 'col_2', 'col_3')
)
)
)
# plotting the mosaic chart
mosaic(data)
输出
简单的镶嵌图
马赛克图也可以用自定义的特征来绘制,使其更有表现力。
例2 :
library('vcd')
# creating a random dataset
# creating 6 rows
data_values <- matrix(c(80, 10, 15,
70, 86, 18,
60, 30, 12,
90, 20, 25,
60, 96, 88,
50, 20, 32))
# creating dataset with above values
data <- as.table(
matrix(
data_values,
# specifying the number of rows
nrow = 6,
byrow = TRUE,
# creating two lists one for rows
# and one for columns
dimnames = list(
Random_Rows = c('A','B','C', 'D', 'E', 'F'),
Random_Columns = c('col_1', 'col_2', 'col_3')
)
)
)
# plotting the mosaic chart
mosaic(data,
# shade is used to plot colored chart
shade=TRUE,
# adding title to the chart
main = "A Mosaic Plot"
)
输出
一个简单的马赛克图