前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言 马赛克图

R语言 马赛克图

作者头像
拴小林
发布2020-07-23 15:27:46
2.2K0
发布2020-07-23 15:27:46
举报
文章被收录于专栏:数据驱动实践数据驱动实践

马赛克图是《R语言实战》书籍开篇中的彩图,偶然遇到了学习分享一下~

代码语言:javascript
复制
Library(vcd)
mosaic(Titanic,shade=T,legend=T)
mosaic(~Class+Sex+Age+Survived,data=Titanic,shade=T,legend=T) #等价于mosaic(Titanic,shade=T,legend=T)

注意:mosaicplot和mosaic绘制马赛克图是基于多(二维以上)列联表。

01

mosaicplot {graphics}

mosaicplot是R语言graphics图形系统中自带的马赛克图绘图函数,用法如下:

代码语言:javascript
复制
## (默认方法:直接以数据集输入)Default S3 method:
mosaicplot(x, main = deparse1(substitute(x)),
           sub = NULL, xlab = NULL, ylab = NULL,
           sort = NULL, off = NULL, dir = NULL,
           color = NULL, shade = FALSE, margin = NULL,
           cex.axis = 0.66, las = par("las"), border = NULL,
           type = c("pearson", "deviance", "FT"), ...)

## (函数形式)S3 method for class 'formula'
mosaicplot(formula, data = NULL, ...,
           main = deparse1(substitute(data)), subset,
           na.action = stats::na.omit)
代码语言:javascript
复制
require(stats)
# 图1
mosaicplot(Titanic, main = "Survival on the Titanic - 图1", color = TRUE)

## Formula interface for tabulated data:
# 图2
mosaicplot(~ Sex + Age + Survived, data = Titanic, main = "Survival on the Titanic - 图2",color = TRUE)

注意:mosaicplot和mosaic绘制马赛克图是基于多(二维以上)列联表。

02

mosaic {vcd}

代码语言:javascript
复制
## Default S3 method:
mosaic(x, condvars = NULL,
  split_vertical = NULL, direction = NULL, spacing = NULL,
  spacing_args = list(), gp = NULL, expected = NULL, shade = NULL,
  highlighting = NULL, highlighting_fill = rev(gray.colors(tail(dim(x), 1))),
  highlighting_direction = NULL,
  zero_size = 0.5, zero_split = FALSE, zero_shade = NULL,
  zero_gp = gpar(col = 0), panel = NULL, main = NULL, sub = NULL, ...)

## S3 method for class 'formula'
mosaic(formula, data, highlighting = NULL,
  ..., main = NULL, sub = NULL, subset = NULL, na.action = NULL)

第1步:了解一下列联表分析

列联分析参考:https://mp.weixin.qq.com/s/URD3Lz69fY8CKdKT3IcNJQ

代码语言:javascript
复制
head(mtcars, 2)
# > head(mtcars, 2)
# mpg cyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4      21   6  160 110  3.9 2.620 16.46  0  1    4    4
# Mazda RX4 Wag  21   6  160 110  3.9 2.875 17.02  0  1    4    4

df <- xtabs(~ cyl + gear + vs, data = mtcars)

# > df
# , , vs = 0
# 
# gear
# cyl  3  4  5
# 4  0  0  1
# 6  0  2  1
# 8 12  0  2
# 
# , , vs = 1
# 
# gear
# cyl  3  4  5
# 4  1  8  1
# 6  2  2  0
# 8  0  0  0

第2步:mosaic绘制马赛克图

代码语言:javascript
复制
## 图3
mosaic(df, main = "图3") # 图3


## 图4 公式模式:
## df <- xtabs(~ cyl + gear + vs, data = mtcars) 
mosaic(~ cyl + gear + vs, data = mtcars,
       main = "图4", shade = TRUE, legend = TRUE)


## 图5
data("PreSex")
mosaic(PreSex, condvars = c(1,4))
mosaic(~ ExtramaritalSex + PremaritalSex | MaritalStatus + Gender,
       data = PreSex, main = "图5")
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据驱动实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档