在研究中,我们需要处理大型的数据集,这时候使用简单散点图、直方图等图形时可能就不太合适了。
今天来学习一个表示高密度的图形。
今天使用的是car包里面的Vocab数据集,数据集包含3万多行和4列变量。
install.packages("car") # 安装包library(car) # 加载R包attach(Vocab) # 绑定数据集head(Vocab) # 查看数据集前六行# year sex education vocabulary# 19740001 1974 Male 14 9# 19740002 1974 Male 16 9# 19740003 1974 Female 10 9# 19740004 1974 Female 10 5# 19740005 1974 Female 12 8# 19740006 1974 Male 16 8
数据集中的变量为性别、出生年月、教育、词汇测验分数等,较为简单。
上面的数据集包含了4个变量,我们可以研究词汇分数和受教育程度之间的关系,正常来讲,教育程度较低的人词汇分数也会比较低。
我们可以使用散点图来显示这种关系,代码如下:
plot(Vocab$education, Vocab$vocabulary, main = "R语言统计与绘图 公众号")
如上图所示,因为数据集中观测对象过多,在图上看不到线性关系,也看不到其他关系。
在前面绘制带状图时,有一个指定抖动的参数(jittering)来分离重合的散点,在这里我们使用这个参数来重新绘制散点图试试。
sp(Vocab$education, Vocab$vocabulary, # 绘图数据 jitter = list(x = 2, y = 2), # 抖动位置参数 smoother = F, spread = F, reg.line = F, main = "R语言统计与绘图 公众号")
可以看到,相比较于前面的图形,这幅图是可以看到线性关系是存在的。
这里面比较关键的参数就是jitter = list(x = 2, y = 2),可以修改里面的数字,看看其他效果。
前面的图形看起来不怎么友好,可以使用其他图形来替代,比如说太阳花图(sunflower plot),也可以叫做向日葵散点图。
太阳花图是在特定的图形位置上使用不同的字符。
sunflowerplot(Vocab$education, Vocab$vocabulary, # 绘图数据 main = "R语言统计与绘图 公众号", # 标题 col.main = "deepskyblue3", # 标题颜色 xlab = "受教育程度", # x轴标签 ylab = "词汇分数") # y轴标签
上面的太阳花图看起来有点像带抖动的散点图。
我们可以试着解读下这张图片:
先看图上最左上角的点,这是1个黑点,该黑点上方和下方都有1个红色花瓣,这两个红色花瓣表示2个观察对象,意味着在3万多名观测对象中,有2个人没有受过教育,但是词汇分数很高。
同样,在最右下角,有1个黑点,有3片红色花瓣,表示有3个观测对象,意味着在3万多名观测对象中,有3个人受过高等教育,但是词汇分数很低,为0。
黑点周围的红色花瓣数目越多,表示该点的观测对象越多,红色实心圆圈表示有很多很多的观测对象。
从这张图上,我们也可以看到,受教育程度越高,词汇分数越高,这种关系是存在的。
sunflowerplot(x, y = NULL, number, log = "", digits = 6, xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL, add = FALSE, rotate = FALSE, pch = 16, cex = 0.8, cex.fact = 1.5, col = par("col"), bg = NA, size = 1/8, seg.col = 2, seg.lwd = 1.5, ...)## 函数解释x, y # 绘图用的x轴,y轴变量,长度应一致number # 长度为n的整数向量log = "" # 表示对数坐标比例的字符。digits = 6 # 有效数字位数xlab, ylab # x轴、y轴标签xlim, ylim # x轴、y轴的范围add # 逻辑词,将图形添加到先前的图形上rotate # 逻辑词,为TRUE,则随机旋转太阳花图pch # 设置太阳花中心点的绘图字符cex # 设置太阳花中心点绘图字符的缩放倍数cex.fact # 有太阳花叶时中心点绘图字符的缩放倍数col # 设置颜色bg # 设置背景size # 太阳花叶也就是太阳花瓣的大小seg.col # 设置太阳花叶的枝干颜色seg.lwd # 设置太阳花叶的枝干粗细 参考资料 Graphing Data with R.John Jay Hilfiger著.sunflowerplot()函数帮助文件
既往专辑
相关知识
Python代码绘制花海的方法
python浪漫表白,表白代码——绘制3D玫瑰花
Python 用10行代码教你画出太阳花
Python绘制花朵
使用Python的turtle模块绘制花形图案(含详细Python代码与注释)
Python中的花——详解花的图形绘制
python玫瑰花代码简单
python玫瑰花代码讲解
Python turtle学习笔记(包含太阳花的绘制,玫瑰花的绘制)
python 绘制一个四瓣花图
网址: 太阳花绘制代码 https://m.huajiangbk.com/newsview777706.html
上一篇: 走进梵高的世界,向日葵太阳花高清 |
下一篇: 描写太阳花的现代诗(精选7首) |