第三章 图形入门

本章概要

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 图形修饰与合并

參考资料

王路情博客

R实战读书笔记四的更多相关文章

  1. R语言实战读书笔记(四)基本数据管理

    4.2 创建新变量 几个运算符: ^或**:求幂 x%%y:求余 x%/%y:整数除 4.3 变量的重编码 with(): within():可以修改数据框 4.4 变量重命名 包reshape中有个 ...

  2. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...

  3. 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...

  4. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  5. 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...

  6. 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...

  7. 【转】Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)

    Verilog HDL常用建模方式——<Verilog与数字ASIC设计基础>读书笔记(四) Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路.所谓综合(Synthesis) ...

  8. 【转载】MDX Step by Step 读书笔记(四) - Working with Sets (使用集合)

    1. Set  - 元组的集合,在 Set 中的元组用逗号分开,Set 以花括号括起来,例如: { ([Product].[Category].[Accessories]), ([Product].[ ...

  9. Spring实战读书笔记

    Spring实战读书笔记 Spring-core Spring之旅 - DI 和 AOP 概念 spring 的Bean容器 spring 的 核心模块 Spring的核心策略 POJO 最小侵入式编 ...

随机推荐

  1. Memcached安装卸载

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached ...

  2. 为什么VS提示SurfFeatureDetector不是cv的成员函数

    surf和sift算法都是在头文件#include <opencv2/features2d/features2d.hpp>中,但在新的opencv版本出来后,如果仍然使用这个头文件就会出现 ...

  3. 《Effective C++》:条款46-条款47

    条款46请输入转换的时候,需要定义非模板成员函数 条款47请使用traits class表现类型信息 条款46:须要类型转换时请为模板定义非成员函数 条款 24提到过为什么non-member函数才有 ...

  4. 移动端WEB开发 代码片段

    WebApp是指基于Web的系统和应用,其作用是向广大的最终用户发布一组复杂的内容和功能(不明白说的是什么).其实Web APP就是一个针对Iphone.Android等智能手机优化后的web站点,它 ...

  5. Hadoop书籍下载链接

    Hadoop书籍推荐1:Hadoop实战(结合经典案例全面讲解hadoop整个技术体系)http://www.db2china.net/club/thread-25148-1-1.html2:Hado ...

  6. PropertyGrid—默认属性,默认事件,属性默认值

    零.引言 PropertyGrid显示一个对象的属性和事件时,可以设置其默认属性和事件,也就是当你选中对象时,propertyGrid中焦点在哪一个属性或事件上.为对象的属性提供默认值,使Proper ...

  7. js 多媒体audio video

    本文主要简单的介绍一下audio 和 video两个标签的用法 <audio src="music.mp3"></audio> <video src= ...

  8. js的两种数据类型

    js中的数据类型总体来说分为两种,他们分别是: 1 值类型(基本类型):数值型(Number),字符类型(String),布尔值型(Boolean),null 和 underfined 2 引用类型( ...

  9. java 类访问权限

    Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修饰符,一般 ...

  10. 在Win7的IIS上搭建FTP服务及用户授权

    FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...