R实战读书笔记四
第三章 图形入门
本章概要
1 创建和保存图形
2 定义符号、线、颜色和坐标轴
3 文本标注
4 掌控图形维数
5 多幅图合在一起
本章所介绍内容概括例如以下。
一图胜千字,人们从视觉层更易获取和理解信息。
图形工作
R具有很强大的画图功能。看以下代码。
> attach(mtcars)
> plot(wt, mpg)
> abline(lm(mpg~wt))
> title("Regression of MPG on Weight")
> detach(mtcars)
效果图如图1所看到的。

图1:mtcars数据集中wt-mpg线性回归图
图形保存方法能够用RGUI完毕或者写代码保存。
比如把上图以pdf格式保存在D:/data文件夹下,代码例如以下:
> setwd("E:\\data")
> pdf("wt-mpg.pdf")
> attach(mtcars)
> plot(wt, mpg)
> abline(lm(mpg~wt))
> title("Regresssion of MPG on Weight")
> detach(mtcars)
>dev.off()
> dir()
一个简单实例
数据集。病人对两种药不同剂量的反映,如图2所看到的。

图2: 病人对两种药不同剂量的反映
程序清单
> dosage <- c(20, 30, 40, 45, 60)
> responseA <- c(16, 20, 27, 40, 60)
> responseB <- c(15, 18, 25, 31, 40)
> plot(dosage, responseA, type="b")
效果图如图3所看到的。

图3: 不同剂量下,病人对药A的反映图
图像化參数
通过图形化參数定义一个图形的特征(字体、颜色、标题、坐标轴)。利用par()函数指定图形化參数。或者把这些參数至于画图函数中。
现基于两种不同的方式使用图形化參数。
方式一:par()函数
> opar <- par(no.readonly=TRUE)
> par(lty=2, pch=17)
> plot(dosage, responseB, type="b")
> par(opar)
方式二:在画图函数进行參数设置
> plot(dosage, responseB, type="b", lty=2, pch=17)
两种方式执行后效果一样,如图4所看到的:

图4:不同剂量下病人对药B的反映图
R画图经常使用參数归纳例如以下。
符号和线型參数。如图5所看到的。

图5:R符号和线型參数
R符号如6所看到的,线型如图7所看到的。

图6:R符号

图7:R线型
颜色參数,如图8所看到的。

图8:R颜色參数
关于R颜色,能够进一步參阅:http://research.stowers-institute.org/efg/R/Color/Chart
文本參数,如图9所看到的。

图9:文本尺寸參数
字体參数。如图10所看到的。

图10:字体參数
面板大小和边距參数,如图11所看到的。

图11:面板大小和边距參数
基于參数化图形的一个实例。
程序清单例如以下:
> dose <- c(20, 30, 40, 45, 60)
> drugA <- c(16, 20, 27, 40, 60)
> drugB <- c(15, 18, 25, 31, 40)
> opar <- par(no.readonly=TRUE)
> par(pin=c(2, 3))
> par(lwd=2, cex=1.5)
> par(cex.axis = .75, font.axis=3)
> plot(dose, drugA, type="b", pch=19, lty=2, col="red")
> plot(dose, drugB, type="b", pch=23, lty=6, col="blue", bg="green")
> par(opar)
图形修饰
图形修饰包含加入文本、自己定义坐标轴和说明。比如:
>plot(dose,drugA,type="b",col="red",lty=2,pch=2,lwd=2,
main="Clinical Trials for Drug A"。sub="This is hypothetical data",
xlab="Dosage", ylab="Drug Resoponse",
xlim=c(0,60), ylim=c(0, 70))
效果图如图12所看到的。

图12:图形修饰演示图
图形修饰主要又例如以下几个方面。
方面一:标题,使用title()函数。
方面二:坐标轴。使用axis()函数。
方面三:參照线,使用abline()函数。
方面四:说明。使用legend()函数。
方面五:文字,使用text()函数。
图形合并
R使用函数par()或者layout()实现图形合并。
关于每种方法,演演示样例如以下:
方法一:基于par()图形合并
程序清单:
> rm(list=ls())
> attach(mtcars)
> opar <- par(no.readonly=TRUE)
> par(mfrow=c(2,2))
> plot(wt,mpg, main="Scatterplot of wt vs. mpg")
> plot(wt,disp, main="Scatterplot of wt vs disp")
> hist(wt, main="Histogram of wt")
> boxplot(wt, main="Boxplot of wt")
> par(opar)
> detach(mtcars)
效果图如图13所看到的。

图13:基于par()图形合并
方法二:基于layout()图形合并
程序清单:
> layout(matrix(c(1,1,2,3), 2, 2, byrow=TRUE))
> hist(wt)
> hist(mpg)
> hist(disp)
> detach(mtcars)
效果图如图14所看到的。

图14:基于layou()图形合并
总结
1 图形创建与保存
2 图形修饰与合并
參考资料
1 王路情博客
R实战读书笔记四的更多相关文章
- R语言实战读书笔记(四)基本数据管理
4.2 创建新变量 几个运算符: ^或**:求幂 x%%y:求余 x%/%y:整数除 4.3 变量的重编码 with(): within():可以修改数据框 4.4 变量重命名 包reshape中有个 ...
- iPhone与iPad开发实战读书笔记
iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...
- 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...
- 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...
- 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...
- 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...
- 【转】Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)
Verilog HDL常用建模方式——<Verilog与数字ASIC设计基础>读书笔记(四) Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路.所谓综合(Synthesis) ...
- 【转载】MDX Step by Step 读书笔记(四) - Working with Sets (使用集合)
1. Set - 元组的集合,在 Set 中的元组用逗号分开,Set 以花括号括起来,例如: { ([Product].[Category].[Accessories]), ([Product].[ ...
- Spring实战读书笔记
Spring实战读书笔记 Spring-core Spring之旅 - DI 和 AOP 概念 spring 的Bean容器 spring 的 核心模块 Spring的核心策略 POJO 最小侵入式编 ...
随机推荐
- 解决GitHub未配置SSH key提示错误信息
git push -u origin master Permission denied (publickey). fatal: Could not read from remote repositor ...
- 【BZOJ 1088 扫雷Mine】模拟
http://www.lydsy.com/JudgeOnline/problem.php?id=1088 2*N的扫雷棋盘,第二列的值a[i]记录第 i 个格子和它8连通的格子里面雷的数目. 第一列的 ...
- C app
1,C 输入输出字符串
- block的一点知识
一个block的笔记: http://www.cnblogs.com/xinye/archive/2013/03/03/2941203.html http://segmentfault.com/q/1 ...
- 面向对象继承实例(a如何继承b)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 关于 HTML5 的 11 个让人难以接受的事实
HTML5为Web开发者提供了很多强大的新特性,但是它的一些特定的限制会让它无法和本地应用匹敌. HTML5整合进了很多新的特性,并且有可能提升Web编程模式.和每一个阅读技术资讯的人所知道的一样,没 ...
- html加载js那些事
浏览器通过内置的JavaScript引擎,读取网页中的代码,对其处理后运行. JavaScript代码嵌入网页的方法 在网页中嵌入JavaScript代码有多种方法. 直接添加代码块 通过script ...
- maven01 hello maven
安装省略,注意jdk的版本1.7: 目录:
- 字符串聚合技术(String Aggregation Techniques)
from: http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php String Aggregation ...
- Windows下的窗口程序
再进一步. . .model flat,stdcall option casemap:none include Windows.inc include user32.inc includelib us ...