zoukankan      html  css  js  c++  java
  • [读书笔记] R语言实战 (六) 基本图形方法

    1.  条形图 barplot()

    #载入vcd包
    library(vcd)
    #table函数提取各个维度计数
    counts <- table(Arthritis$Improved)
    counts
    #绘制简单Improved条形图
    #1行2列
    par(mfrow=c(1,2))
    barplot(counts, main = "simple Bar plot", xlab = "Improved",ylab = "Frequency")
    #绘制水平条形图 horiz = TRUE
    barplot(counts,main = "simple Bar plot", xlab = "Frequency",ylab = "Improved",horiz=TRUE)
    #如果绘制的是一个有序因子,可以使用plot()函数快速创建一幅垂直条形图
    #1行1列
    par(mfrow=c(1,1))
    plot(Arthritis$Improved,xlab = "Frequency",ylab = "Improved",horiz=TRUE)
    #如果要绘制的变量是一个矩阵而不是一个向量,将会绘制堆砌条形图或者分组条形图
    #生成Improved和Treatment列联表
    counts <- table(Arthritis$Improved,Arthritis$Treatment)
    counts
    #绘制堆砌图
    barplot(counts,main = "Stacked Bar plot",xlab = "Treatment",ylab = "Frequency",col = c('red','yellow','green'),legend = rownames(counts))
    #绘制分组条形图
    barplot(counts,main = "Grouped Bar plot",xlab = "Treatment",ylab = "Frequency",col = c('red','yellow','green'),legend = rownames(counts),beside = TRUE)
    #条形图微调
    #增加y边界大小
    par(mar = c(5,8,4,2))
    #las=2旋转条形标签
    par(las = 2)
    counts <- table(Arthritis$Improved)
    #cex.names= 0.8缩小字体的大小
    barplot(counts,main="Treatment Outcomes",horiz = TRUE,cex.names=0.8,names.arg = c("No Improvement","Some Improvement","Marked Imporvement"))

    2. 饼图:饼图在商业世界中无所不在,然而多数统计学家,包括R相应文档的编写者,都对它持否定态度。相对于饼图,他们更推荐使用条形图或点图,因为相对于

    面积,人们对长度的判断更为精确 pie() pie3D()

    par(mfrow=c(2,2))
    slices <- c(10,12,12.4,16,8)
    lbls <- c("US","UK","Austrialia","Germany","France")
    pie(slices,labels=lbls,main="simple Chart")
    pct <- round(slices/sum(slices)*100)
    #拼接字符串和比例数值
    lbls2 <- paste(lbls," ", pct,"%",sep = "")
    lbls2
    pie(slices,labels=lbls2,col=rainbow(length(lbls2)),main="Pie chart with percentage")
    #载入ploirix包
    library(plotrix)
    #画简单3D图
    pie3D(slices,labels=lbls,explode = 0.4,main = "3D pei chart")
    #从表格创建饼图
    #table取得region的计数表
    mytable <- table(state.region)
    #names 函数取得列名,然后将列名和相应的计数拼接在一起
    lbls3 <- paste(names(mytable),'
    ',mytable,sep="")
    pie(mytable,labels=lbls3,main="pie chart from a table
    {with sample sizes}")
    

    3. 直方图 :可以展示连续变量的分布. hist(x,breaks=, freq = )

    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 with 12 bins")
    hist(mtcars$mpg,freq=FALSE,breaks=12,col='red',xlab="Miles Per Gallon",main="Histogram,rug plot, density curve")
    rug(jitter(mtcars$mpg))
    #添加核密度图 lines(density(mtcars$mpg),col='blue',lwd=2) x <- mtcars$mpg h <- hist(x,breaks=12,col='red',xlab="Miles Per Gallon",main="Histogram with normal curve 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()

    4. 核密度图:核密度估计是用于估计随机变量概率密度函数的非参数方法

    #当前图像参数列表
    opar <- par(no.readonly = TRUE)
    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")
    #添加棕色轴须图
    rug(mtcars$mpg,col="brown")
    #可比较的核密度函数
    #线宽为双倍
    #还原初始设置
    par(opar)
    par(lwd=2)
    library(sm)
    attach(mtcars)
    sm.density.compare(mpg,cyl,xlab='Miles per gallon')
    cyl.f <- factor(cyl,levels=c(4,6,8),labels=c("4 cylinder","6 cylinder","8 cylinder"))
    title(main="MPG Distribution by Car Cylinders")
    #创建颜色向量
    colfill <- c(2:(1+length(levels(cyl.f))))
    legend(locator(1),levels(cyl.f),fill=colfill)
    detach(mtcars)
    

    5. 箱线图:boxplot()

    boxplot(mtcars$mpg,main="Box plot",ylab="Miles per gallon")
    #并列箱线图跨列比较
    boxplot(mpg~cyl,data=mtcars,main="Car Mileage Data",xlab="Number of Cylinders",ylab="Miles per gallon")
    #图中可以看到四缸,六缸,八缸耗油中位数不同
    

    6. 点图:在简单水平刻度上绘制大量有标签值的方法, dotchart()

    dotchart(mtcars$mpg,labels=row.names(mtcars),cex=.7,main="Gas Mileage for Car Models",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]<-'dark green'
    dotchart(x$mpg,labels=row.names(x),cex=.7,group=x$cyl,gcolor="black",color=x$color,pch=19,
             main="Gas Mileage for Car models
     grouped by cylinder",xlab='Miles Per gallon')
    

     

  • 相关阅读:
    WEB上传大文件
    Java+超大文件上传
    php+文件夹上传
    php上传视频大文件
    每一个程序猿需掌握的20个代码命名小贴士
    Mysql整数运算NULL值处理注意点
    拓展欧几里得模板
    bzoj 1088 简单dfs
    决策树
    进程-IPC 管道 (一)
  • 原文地址:https://www.cnblogs.com/vincentcheng/p/7896895.html
Copyright © 2011-2022 走看看