R绘图学习笔记
R软件作图学习,首先为了体验方便,我使用的R中MASS包中的自带数据集,首先加载该包
> library(MASS)
加载数据集,该数据集事保险数据统计
> data("Insurance")
> dim(Insurance)
查看数据的的行列元信息,发现是65行,5列
[1] 64 5
定义一个元信息的变量用于显示的需要
> var=c("District","Age")
> Insurance[20:25,var]
District Age
20 2 >35
21 2 <25
22 2 25-29
23 2 30-35
24 2 >35
25 2 <25
统计数据的头字段,该字段的意义,Insurance数据集是记录了某保险公司1973年的第三季度的车险投保人数的相关信息,其中
District表示投保人家庭住址所在区域,取值1-4之间,
Group表示所投保汽车的发动机排量,分为小于1升,1-1.5升,1.5-2升,大于2升的四个等级
Age表示投保人的年龄:取值小于25,25-29,30-35,大于35岁
Holders表示投保人的数量
Claims表示索赔的投保人数
可以通过attributes() 函数来查看数据的属性列表,具体包括变量名称$name,数据集格式$class,以及行名称$row.names三个部分,由此组成了数据集中的一个整体的结构。
同时可以通过str()函数继续观察数据的内部结构,会发现数据的内部一些基本信息,同时还有summary函数进行查看。
> names(Insurance)
[1] "District" "Group" "Age" "Holders" "Claims"
> head(Insurance, n=10)
District Group Age Holders Claims
1 1 <1l <25 197 38
2 1 <1l 25-29 264 35
3 1 <1l 30-35 246 20
4 1 <1l >35 1680 156
5 1 1-1.5l <25 284 63
6 1 1-1.5l 25-29 536 84
7 1 1-1.5l 30-35 696 89
8 1 1-1.5l >35 3582 400
9 1 1.5-2l <25 133 19
10 1 1.5-2l 25-29 286 52
> class(Insurance$Age)
[1] "ordered" "factor"
> levels(Insurance$Age)
[1] "<25" "25-29" "30-35" ">35"
画出Claims的直方图
> hist(Insurance$Claims,main = "Histogram of Freq of Insurance$Claims")
查看直方图的内部相信信息
> str(hist)
function (x, ...)
> str(hist(Insurance$Claims,breaks=20,labels = TRUE,col = "black",border = "white",main = "Histogram of Insurance$Claims whth 20 hars"))
List of 6
$ breaks : num [1:21] 0 20 40 60 80 100 120 140 160 180 ...
$ counts : int [1:20] 30 13 5 5 3 2 0 2 0 1 ...
$ density : num [1:20] 0.02344 0.01016 0.00391 0.00391 0.00234 ...
$ mids : num [1:20] 10 30 50 70 90 110 130 150 170 190 ...
$ xname : chr "Insurance$Claims"
$ equidist: logi TRUE
- attr(*, "class")= chr "histogram"
> str(hist(Insurance$Claims,breaks=20,labels = TRUE,col = "yellow",border = "white",main = "Histogram of Insurance$Claims whth 20 hars"))
List of 6
$ breaks : num [1:21] 0 20 40 60 80 100 120 140 160 180 ...
$ counts : int [1:20] 30 13 5 5 3 2 0 2 0 1 ...
$ density : num [1:20] 0.02344 0.01016 0.00391 0.00391 0.00234 ...
$ mids : num [1:20] 10 30 50 70 90 110 130 150 170 190 ...
$ xname : chr "Insurance$Claims"
$ equidist: logi TRUE
- attr(*, "class")= chr "histogram"
添加密度曲线图和直方图交汇
> hist(Insurance$Claims,freq=FALSE,density = 20,
+ main= "Histrogrm of Densitry of Insurance$Clamis")
> lines(density(Insurance$Claims))
> hist(Insurance$Claims,freq=FALSE,density = 20,
+ main= "Histrogrm of Densitry of Insurance$Clamis")
> lines(density(Insurance$Claims))
由于原始数据没有在Age变量的各个水平下Claims的分布情况,因此我们需要计算在四个age阶段Claims的值,程序如下,其中用到了names.arg是命名的形式表示,标注出条形图中各矩形所对应的离散数值水平
> Claims_Age = with(Insurance,c(
+ sum(Claims[which(Age=="<25")]),
+ sum(Claims[which(Age=="25-29")]),
+ sum(Claims[which(Age=="30-35")]),
+ sum(Claims[which(Age==">35")])))
> Claims_Age
[1] 229 404 453 2065
> barplot(Claims_Age,names.arg = c("<25","25-29","30-35",">35"),density = rep(20,4),main = "Distribution of age by Claims", xlab = "Age", ylab = "Claims")
> barplot(Claims_Age,names.arg = c("<25","25-29","30-35",">35"),density = rep(30,4),main = "Distribution of age by Claims", xlab = "Age", ylab = "Claims")
同理统计Holders与Age的对应关系
> Holders_Age = with(Insurance,c(sum(Holders[which(Age=="<25")]),
+ sum(Holders[which(Age=="25-29")]),
+ sum(Holders[which(Age=="30-35")]),
+ sum(Holders[which(Age==">35")])))
> data_bar=rbind(Claims_Age,Holders_Age)
> data_bar
[,1] [,2] [,3] [,4]
Claims_Age 229 404 453 2065
Holders_Age 1138 2336 3007 16878
绘制连体直方图将Holders—Age,Claims-Age进行绑定
> barplot(data_bar,names.arg = c("<25","25-29","30-35",">35"),
+ beside=TRUE,
+ main="Age Distrbution by Claims and Holders",
+ xlab="Age",ylab="Claims&Holders",col=c("red","green"))
绘制内嵌直方图将Holders—Age,Claims-Age进行绑定
> legend(x="topleft",rownames(data_bar),fill = c("red","green"))
> barplot(data_bar,names.arg = c("<25","25-29","30-35",">35"),
+ beside=FALSE,
+ main="Age Distrbution by Claims and Holders",
+ xlab="Age",ylab="Claims&Holders",col=c("red","green"))
> legend(x="topleft",rownames(data_bar),fill = c("red","green"))
绘制点阵图
> dotchart(data_bar,xlab = "Claims&Holders",pch = 1:2,
+ col=c("red","green"),
+ main="Age Distribution by Claims and Holders")
绘制饼图
> pie(Claims_Age,labels = c("<25","25-29","30-35",">35"),
+ main="Pie Chart of Age by Claims",
+ col=c("green","red","yellow","blue"))
绘制带百分比的饼图
> percent=round(Claims_Age/sum(Claims_Age)*100)
> label=paste(paste(c("<25","25-29","30-35",">35"),":"),percent,"%",sep = "")
> pie(Claims_Age,labels = label,
+ main="pie chart of Age by Claims",col=c("blue","red","yellow","green"))
绘制3D饼图
> library(plotrix)
> pie3D(Claims_Age,labels = c("<25","25-29","30-35",">35"),explode = 0.05,
+ main="3D Pie Chart of Age by Claims",labelcex=0.8,
+ col=c("red","yellow","green","blue"))
R绘图学习笔记的更多相关文章
- R绘图学习笔记(二)-
依照计量对比药物A和药物B的响应情况 #计量向量 dose <- c(20,30,40,45,60) #药物A的反应向量数据 drugA <- c(16,20,27,40,60) #药物B ...
- R ggplot学习笔记1
R 可视化学习笔记 记参数挺费劲的,还是用的时候查官方文档吧,现在记个大概就行吧~ 1.ggplot2分层次绘图 1.1 核心理念 把绘图与数据分离,把数据相关的绘图与数据无关的绘图分离,按图层作图. ...
- R语言学习笔记(五)绘图(1)
R是一个惊艳的图形构建平台,这也是R语言的强大之处.本文将分享R语言简单的绘图命令. 本文所使用的数据或者来自R语言自带的数据(mtcars)或者自行创建. 首先,让我们来看一个简单例子: ...
- R语言学习笔记2——绘图
R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, ...
- R 语言学习笔记(3)—— 基础绘图
R 中图形的概念 在 R 中图,就像 photoshop 中的图层一样,每一个元素都是层层向上延展构建的,最终形成了我们视觉上所形成的平面图形.这些元素包含了常见的图形的标题(title).坐标轴(a ...
- R语言学习笔记:基础知识
1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...
- R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...
- R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...
- R语言学习笔记(二)
今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...
随机推荐
- PHP多维数组元素操作类
我的框架里面一个多维数组元素操作类,主要用于读取数组中配置数据,可以通过字符串节点的方式:a.b.c 来获取和设置元素,以及多维数组的覆盖,有需求的可以参考下吧! <?php /** * Cre ...
- 【CSS学习笔记】字体的控制
关于font-family: "无衬线体"(Sans-serif),比如黑体,微软雅黑 "有衬线体"(Serif),比如宋体,新宋 程序员设置的字体,客户电脑上 ...
- 新mac上安装,查看,设置一些常用的软件
安装 brew install ~ 查看相关信息 brew info ~ 设置登录自启动 brew services start ~(本质是在~/Library/LaunchAgents/下面加了对应 ...
- 采用rest接口对接而非webservice
代码示例 public static String queryForCTI(String url){ String targetURL = getCTIurl()+"/"+url; ...
- ManualResetEvent和AutoResetEvent的区别
在讨论这个问题之前,我们先了解这样一种观点,线程之间的通信是通过发信号来进行沟通的.(这不是废话) 先来讨论ManualResetEvent,讨论过程中我会穿插一些AutoResetEvent的内容, ...
- [Android]Android SDk Manager中创建模拟器无法选择CPU问题解析
方法一.正常下载所需sdk包 启动 Android SDK Manager ,打开主界面,依次选择「Tools」.「Options...」,弹出『Android SDK Manager - Setti ...
- Winform_devexpress开发框架主界面设计
做了好多年的C#开发,从.Net.Winform及第三方的DevExpress.无论什么样的系统,主界面的设计及风格无疑非常重要.从客户的角度考虑,要求功能区清晰,整体美观大方,这样才会有可能从第一视 ...
- glusterfs快速安装
因为公司ES02集群使用的是SSD磁盘做的raid0,为了保证存放文件的可靠性,即在ES02集群上部署了一套分布式文件系统glusterfs. 结构 ES11 含有gfs程序,并挂载gfs在 ...
- 关于数据汇总方面返回Json数据的小小心得
在一开始的开发中,计算好相关数据,然后通过 1.拼串 2.实例化Dictory对象再通过JavaScriptSerializer转换为json. 其中,2只适合于二维数据.1适合多维数据,但拼串比较费 ...
- CentOS7中将Mysql添加为系统服务
如果是自己通过tar包安装的Mysql,不会自动添加到系统服务中,可通过如下方式,自己添加. 先启动一下mysql ${mysql}/support-files/mysql.server start ...