专栏首页机器学习与统计学R in action读书笔记(4)-第六章:基本图形(下)

R in action读书笔记(4)-第六章:基本图形(下)

6.3直方图

hist()

其中的x是一个由数据值组成的数值向量。参数freq=FALSE表示根据概率密度而不是频数绘制图形。参数breaks用于控制组的数量。在定义直方图中的单元时,默认将生成等距切分。

par(mfrow=c(2,2))

hist(mtcars$mpg)#简单直方图

hist(mtcars$mpg#指定组数和颜色

breaks=12,

col="red",

xlab="Miles Per Gallon",

main="Colored histogram wi七h 12 bins”

hist(mtcars$mpg#添加轴须图

freq=FALSE,

breaks=12,

col=”red",

xlab="Miles Per Gallon",

main="His七ogram, rug plo七,densi七y curve"

rug(jitter(mtcars$mpg))

lines(density(mtcars字mpg),col="blue",lwd=2)

x<一mtcars$mpg#添加正态密度曲线和外框

h<-hist(x,

breaks=12,

col=”red",

xlab="Mfiles Per Gallon"

main="Histogramwith normalcurve and box"

xfit<一seq(min(x),max(x),length=40)

yfit<-dnorm(xfit,mean=mean(x),sd=sd(x))

yfit<一yfit*diff(h$mids[1:2])*length(x)

lines(xfit,yfit, col="blue",lwd=2)

box()

6.4核密度图

核密度估计是用于估计随机变量概率密度函数的一种非参数方法。绘制密度图的方法(不叠加到另一幅图上方)为: plot(density(x)) 其中的x是一个数值型向量。

par(mfrow=c(2,1))

d<一density(mtcars$mpg)

plot(d)

d<一density(mtcars$mpg)

plot(d,main=”Kernel Density of Miles Per Gallon"

polygon(d,col=”red",border="blue”)# polygon()函数根据顶点的x和y坐标(本例中由density()函数提供)绘制了多边形。

rug(mtcars$mpg,col=”brown”)

使用sm包中的sm.density.compare()函数可向图形叠加两组或更多的核密度图。使用格式为:

sm .density .compare(x, factor)

其中的x是一个数值型向量,factor是一个分组变量。

par(lwd=2)#双倍线条宽度

library(sm)

attach(mtcars)

cyl.f<-factor(cyl,levels=c(4,6,8),labels=c("4cylinder","6 cylinder","8 cylinder"))#创建分组因子

sm .density.compare(mpg, cyl,xlab=”MilesPer Gallon”)#绘制密度图

title(main="MPGDistribution by Car Cylinders”)

colfill<-c(2:(1+length(levels(cyl.f)))) #通过鼠标单击添加图例

legend(locator(1),levels(cyl .f),fill=colfill)

detach(mtcars)

6.5箱线图

箱线图(又称盒须图)通过绘制连续型变量的五数总括,即最小值、下四分位数(第25百分

位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值,描述了连续型变量

的分布。箱线图能够显示出可能为离群点(范围±1.5*IQR以外的值,IQR表示四分位距,即上

四分位数与下四分位数的差值)的观测。例如:

boxplot(mtcars$mpg,main=”boxplot”,ylab=”miles per gallon”)

6.5.1使用并列箱线图进行跨组比较

箱线图可以展示单个变量或分组变量。使用格式为:

boxplot(formula,data=data framel)

其中的formula是一个公式,dataframe代表提供数据的数据框(或列表)。一个示例公式为y ~

A,这将为类别型变量A的每个值并列地生成数值型变量y的箱线图。公式y ~ A*B则将为类别型

变量A和B所有水平的两两组合生成数值型变量y的箱线图。添加参数varwidth=TRUE 将使箱线图的宽度与其样本大小的平方根成正比。参数horizontal=TRUE可以反转坐标轴的方向。

boxplot(mpg~cyl,data=mtcars,main="Carmileage data",xlab="number of cylinders",ylab="miles pergallon")

箱线图灵活多变,通过添加notch=TRUE,可以得到含凹槽的箱线图。若两个箱的凹槽互不

重叠,则表明它们的中位数有显著差异

boxplot(mpg~cyl,data=mtcars,notch=TRUE,varwidth=TRUE,col="red",main="CarMileage Data",xlab="Number of Cylinders",ylab="Miles PerGallon")

两个交叉因子的箱线图:

mtcars$cyl.f<-factor(mtcars$cyl,levels=c(4,6,8),labels=c("4","6","8"))#创建汽缸数量的因子

mtcars$am.f<-factor(mtcars$am,levels=c(0,1),labels=c("auto","standard"))#创建变速箱类型的因子

boxplot(mpg~am.f*cyl.f,data=mtcars,varwidth=TRUE,col=c("gold","darkgreen"),main="MPGDistribution by Auto Type",xlab="Auto Type")#生成箱线图

6.5.2小提琴图

小提琴图是箱线图与核密度图的结合。你可以使用vioplot包中的vioplot()函数绘制它。

>x1<-mtcars$mpg[mtcars$cyl==4]

>x2<-mtcars$mpg[mtcars$cyl==6]

>x3<-mtcars$mpg[mtcars$cyl==8]

>vioplot(x1,x2,x3,names=c("4 cyl","6 cyl","8cly"),col="gold")

>title("violin plots of miles per gallon")

6.6点图

点图提供了一种在简单水平刻度上绘制大量有标签值的方法。你可以使用dotchart()函数创建点图,格式为:dotchart(x,labels=)其中的x是一个数值向量,而labels则是由每个点的标签组成的向量。你可以通过添加参数groups来选定一个因子,用以指定x中元素的分组方式。如果这样做,则参数gcolor可以控制不同组标签的颜色,cex可控制标签的大小。

dotchart(mtcars$mpg,labels=row.names(mtcars),cex=0.7,main="gasmileage for car nolels",xlab="miles per gallon")

分组、排序、着色后的点图

>x<-mtcars[order(mtcars$mpg),]

>x$cyl<-factor(x$cyl)

>x$color[x$cyl==4]<-"red"

>x$color[x$cyl==6]<-"blue"

>x$color[x$cyl==8]<-"darkgreen"

>dotchart(x$mpg,labels=row.names(x),cex=.7,groups=x$cyl,gcolor="black",color=x$color,pch=19,main="gasfo car models\ngrouped by cylinder",xlab="miles per gallon")

本文分享自微信公众号 - 机器学习与统计学(tjxj666)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-04-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R in action读书笔记(5)-第七章:基本统计分析

    mpg hp wt

    统计学家
  • COVID-19数据分析实战:数据清洗篇

    2020 年全球的关键词非COVID19 莫属。虽然现在关于病毒的起源众说纷纭,也引起了不小的外交冲突。作为数据爱好者,还是用数据说话比较靠谱。

    统计学家
  • 备战数学建模【MATLAB 从零到进阶】day1 MATLAB简介 变量定义 数据类型 特殊函数 常用函数 数组 向量 矩阵

    Tab键输入命令的前几个字符,然后按Tab键,会弹出前面包含这几个字符的所有命令,方便查找所需命令

    统计学家
  • ggplot2 / ggpubr 实现发散型棒棒糖图

    棒棒糖图 (Lollipop Chart),其实是一种特殊的barplot,只是将bar转变成了line和dot。效果如下两图所示:

    生信编程日常
  • 移动客户端WebP 图片格式优化

    前言 在移动端,图片一直是流量大头,一些商品列表和详情等页面,图片大小动不动就以几百K,当然在某些比较大的公司会根据具体情况去加载相应尺寸的图片,这就意味着服务...

    xiangzhihong
  • 客户端WebP 图片格式优化

    前言 在移动端,图片一直是流量大头,一些商品列表和详情等页面,图片大小动不动就以几百K,当然在某些比较大的公司会根据具体情况去加载相应尺寸的图片,这就意味着服务...

    xiangzhihong
  • 12月4日 云头条:网络视听,新的“黄金赛道”?

    要做生意,最重要的一件事,就是紧跟大势。红利来了,傻子也能躺着赚钱。红利没了,神坛说塌也就塌了。而现在,网络视听内容行业即将迎来一波巨大的红利。在5G、4K、A...

    February
  • 系统集成模式介绍

    在当今的mashup-driven(混搭驱动)的世界中,使用集成来提取、转换和利用数据是大多数软件工程师的首要任务。理解经过验证的集成模式很重要,它可以帮助简化...

    程序你好
  • 生成人工智能:创意专家新的强大工具

    人工智能可以以惊人的速度,效率和逼真度生成新的数据模式。在过去的几年里,人工智能通过算法生成可以以数字形式呈现的任何对象已经司空见惯。到2019年,大多数领先的...

    企鹅号小编
  • 如何使用JavaScript导入和导出Excel文件

    JavaScript是一个涵盖多种框架、直译式、可以轻松自定义客户端的脚本语言,在 Web 应用程序中,更加易于编码和维护。而Excel 作为一款深受用户喜爱的...

    葡萄城控件

扫码关注云+社区

领取腾讯云代金券