以下函数只为满足常用的若干作图需求。

基本作图:

plot(x)、plot(x, y) #散点图,最多两个变量

    #可使用参数type生成不同的效果图。常用‘l’、‘o’、‘h’,分别为折线图,点线图,垂线图。

    #’s'和’S'是折线图,前者是先水平后垂直,后者是先垂直后水平;’n'是不显示,用于画空白图

    #若需对三个以上变量两两作图,可先合并在一个数据框,再对数据框使用plot

    #例:r=data.frame(x,y,z); plot(r);

boxplot(x)、boxplot(x,y,z,…) #箱式图,可使用多个参数将多个箱式图做在一起

coplot(x~y|z) #在z的每个值或每个区间上做x与y的散点图

pairs(x) #当x为矩阵时,做x各列之间的散点图

hist(x, freq) #直方图。参数freq默认为TRUE,根据频数作图;若为FALSE,则据构成比(总和为1)作图。

barplot(table(x,y), beside=FALSE) #对定性变量x、y做条图,默认堆积条图,使用beside=T则为并列条图。

qqnorm(x) #QQ图(正态分位数-分位数图)

qqplot(x,y) #y对x的分位数-分位数图

pie(table(x)) #对定性变量x做饼图

arrows #在两点之间画箭头线,箭头与线段之间的夹角可调

segments #在两点之间画线段

加参考线: #低级绘图参数,直接在原图上修改

lines(x)、lines(x, y) #添加折线

abline(lm(y~x)) #添加y对x的回归直线

abline(a,b) #a为截距,b为斜率

abline(v=) #添加垂直线

abline(h=) #添加水平线

添加点:

points(x,y) #低级绘图参数,直接在原图上修改

画曲线:

1、curve(expr, from=0, to=1, n=101, add=FALSE)

    例:curve(qnorm); curve(log); curve(x^2) #第一个参数可以是函数,也可以是含x的表达式。

    例:curve(x^2, 0, 100); #from和to规定表达式或函数的自变量范围,默认0~1。

    n:为自变量范围内取多少个点进行描图,n越大,曲线越平滑

    add:当取值为TURE时,该曲线添加于前一图上。当两图的自变量取值范围不重合时,无法叠加。

2、plot(fun, from=0, to=1)

    用法和curve相似,但第一个参数不能使用含x的表达式。

    注意在plot中尽量避免使用add参数。

使用参数pch设定点的样式

1、数字0~20,表示21种不同的符号

    curve(x/20,0,21,lty=0); for (i in 0:20) {points(i,0.5,pch=i);}

2、8个字符,表示8种点的样式

    curve(x/7,0,7,lty=0); chr=c(‘*’,’.’,'o’,'O’,’0′,’+',’-',’|');

    for (i in 0:7) {points(i,0.5,pch=chr[i+1])}

3、数字21~25,表示可以填充背景色的五种符号,需和参数bg联用

    curve(x/4,0,4,lty=0); for (i in 0:4) {points(i,0.5,pch=21+i,bg=sample(colors(),1))}

使用参数col设定颜色

    例:plot(dnorm, col=’red’)

    使用sort(colors())可以查看所有已命名的颜色


使用参数lty设定线型

1、简单取值可以使用0~6

    curve(x*8,0,1,lty=0); for (i in 1:16) {abline(h=i/2,lty=i);}

    #0表示空白,随取值增大,6种线型循环出现

2、使用十六进制数字组成的字符串

    长度只能是偶数位,最长8位;奇数位为表示实线长度,偶数位表示空白长度

    注意:需要引号;不能有0。

    curve(x^2,0,1,lty=’32′;) #3单位实线和2单位空白循环

    curve(x^2,0,1,lty=’32AA’;) #3单位实线、2单位空白、10单位实线、10单位空白循环

使用参数bty设定边框

    bty=’o’ #默认显示四条边框

    bty=’l’ #不显示右上两条边框,例:curve(x^2,0,1,bty=’l')

    bty=’n’ #不显示边框

使用参数xlab和ylab修改坐标轴的意义

    curve(x*5,0,1,xlab=”,ylab=”,lty=0) #不显示坐标轴的符号

添加图例

1、图例在作图区域内

     legend(x,y,legend,pch,col,lty,ncol=1,bty=’o')

          #x,y为图例左上角的坐标,也可以使用以下字符来标记特殊位置:”bottomright”, “bottom”, “bottomleft”, “left”, “topleft”, “top”, “topright”, “right” and “center”

          #legend是图例的文字,一般是一个字符向量

          #pch,col,lty是图中所用的样式

          #ncol是图例的列数,bty指明图例的边框显示

    例:

    curve(x*8,0,1,lty=0); for (i in 1:6) {abline(h=i/2,lty=i);}

    legend(0,8,legend=letters[c(1:6)],lty=1:6,bty=’n');

2、图例在作图区域外

    需使用par修改参数mar和pty。同时还需要修改参数xpd。

    默认mar=c(5,4,4,2)+0.1,即图形下左上右四个边界的宽度分别为5.1,4.1,4.1,2.1厘米。

    默认pty=’m',即最大化作图区域,取值为’s'则限制作图区域为方形。

    默认xpd=FALSE,即不允许在作图区域外作图,改为TRUE即可。

    例:

    op=par(); #保存par的原值

    par(mar=c(5,4,4,5),pty=’s'); #准备在图形右边添加图例

    curve(x*8,0,1,lty=0); for (i in 1:16) {abline(h=i/2,lty=i);}

    legend(1.02,4,legend=letters[c(1:6)],lty=1:6,bty=’n',xpd=T);

    par(op); #恢复par的原值

曲线拟合:(线性回归方法:lm)

1、x排序

2、求线性回归方程并赋予一个新变量

    z=lm(y~x+I(x^2)+…)

3、plot(x,y) #做y对x的散点图

4、lines(x,fitted(z)) #添加拟合值对x的散点图并连线

曲线拟合:(nls)

lm是将曲线直线化再做回归,nls是直接拟合曲线。

需要三个条件:曲线方程、数据位置、系数的估计值。

如果曲线方程比较复杂,可以先命名一个自定义函数。

例:

    f=function(x1, x2, a, b) {a+x1+x2^b};

    result=nls(x$y~f(x$x1, x$x2, a, b), data=x, start=list(a=1, b=2));

        #x可以是数据框或列表,但不能是矩阵

        #对系数的估计要尽量接近真实值,如果相差太远会报错:“奇异梯度”

    summary(result); #结果包含对系数的估计和p值

根据估计的系数直接在散点图上使用lines加曲线即可。

曲线拟合:(局部回归)

lowess(x, y=NULL, f = 2/3, iter = 3)

    #可以只包含x,也可使用x、y两个变量

    #f为窗宽参数,越大越平滑

    #iter为迭代次数,越大计算越慢

loess(y~x, data, span=0.75, degree=2)

    #data为包含x、y的数据集;span为窗宽参数

    #degree默认为二次回归

    #该方法计算1000个数据点约占10M内存

举例:

x=seq(0, 10, 0.1); y=sin(x)+rnorm(101) #x的值必须排序

plot(x,y); #做散点图

lines(lowess(x,y)); #利用lowess做回归曲线

lines(x,predict(loess(y~x))); #利用loess做回归曲线,predict是取回归预测值

z=loess(y~x); lines(x, z$fit); #利用loess做回归曲线的另一种做法

核密度估计曲线

1、hist(x, freq=FALSE) #根据构成比做直方图

2、核密度估计

density(x,

    bw=’nrd0′, #设置窗宽,默认为‘nrd0’(只是为了兼容,并不是推荐数值),可尝试不同数字选择最合适的。

    kernel = c(“gaussian”, “epanechnikov”, “rectangular”, “triangular”, “biweight”, “cosine”, “optcosine”),

    #选择列表中的一种计算方法,默认为第一种。方法名称可使用首字母代替。

    weights) #给不同的x值赋予权重,长度和x相同。默认权重相同。

例:a=density(x,bw=0.5, kernel=’c');

3、lines(a) #添加核密度曲线

R语言简单作图的更多相关文章

  1. R语言简单介绍

    R语言 概述 R语言是用于统计分析,图形表示和报告的编程语言和软件环境. R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发. R语言的 ...

  2. R语言-简单线性回归图-方法

    目标:利用R语言统计描绘50组实验对比结果 第一步:导入.csv文件 X <- read.table("D:abc11.csv",header = TRUE, sep = & ...

  3. R语言简单入门

    一.运行R语言可以做哪些事? 1.探索性数据分析(将数据绘制图表) 2.统计推断(根据数据进行预测) 3.回归分析(对数据进行拟合分析) 4.机器学习(对数据集进行训练和预测) 5.数据产品开发 二. ...

  4. R语言简单聚类分析

    #以R基础包自带的鸢尾花(Iris)数据进行聚类分析iris data <- iris[,:] #系统聚类法(层次聚类法) distance <- dist(data) #计算距离 iri ...

  5. R语言简单实现聚类分析计算与分析(基于系统聚类法)

    聚类分析计算与分析(基于系统聚类法) 下面以一个具体的例子来实现实证分析.2008年我国其中31个省.市和自治区的农村居民家庭平均每人全年消费性支出. 根据原始数据对我国省份进行归类统计. 原始数据如 ...

  6. R语言-简单模型画图

    1.回归拟合 > plot(mtcars$mpg~mtcars$disp) > lmfit<-lm(mtcars$mpg~mtcars$disp) #线性回归模型 > abli ...

  7. R语言-优化作图

    par()函数:用来设置画图参数的函数par()的作用直到画板被关闭为止 1.设置背景颜色 #设置背景颜色 > par(bg="gray") #设置画板背景色 > pl ...

  8. R语言初涉

    R语言简单的函数的使用: “<-”表示赋值,也可以用“=”. c()为连接函数,连接中间的数据表示向量,连接中间的数据表示向量,X1 <- c()表示用一组数据为变量X1赋值. mean( ...

  9. R语言学习笔记(五)绘图(1)

      R是一个惊艳的图形构建平台,这也是R语言的强大之处.本文将分享R语言简单的绘图命令.   本文所使用的数据或者来自R语言自带的数据(mtcars)或者自行创建.   首先,让我们来看一个简单例子: ...

随机推荐

  1. Linux Glibc库严重安全漏洞修复方案通知(腾讯开发者社区)

    如何查看当前glibc的版本号? rpm -aq | grep glibc 尊敬的用户:       您好!2015年1月28日, 腾讯云安全情报监测到LinuxGlibc库存在一处严重安全漏洞,可以 ...

  2. 算法(Algorithms)第4版 练习 2.2.10

    关键代码实现: private static void merge(Comparable[] input, int lo, int mid, int hi) { //copy input[lo,mid ...

  3. JavaWeb -- 会话, Cookie 和 Session

    1. 会话 •Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去.这样,web资源处理的就是 ...

  4. Spark- RDD简介

    Spark里面提供了一个比较重要的抽象——弹性分布式数据集(resilient distributed dataset),简称RDD.弹性:数据可大可小,可分布在内存或磁盘,当某台机器宕机时,能够按照 ...

  5. php设计模式课程---2、为什么会用到简单工厂设计模式

    php设计模式课程---2.为什么会用到简单工厂设计模式 一.总结 一句话总结: 比如调用数据库的语句,如果调用的数据库名字改了,或者调用的数据库类型改了(比如从Mysql用到了Mysqli),那么要 ...

  6. jQuery插件--图片文字向上向左循环滚动

    需要引用jquery 调用非常简单: 一. 向上滚动 $(".scroll_two").jScroll({vertical: true}); <div class=" ...

  7. CSS cursor 属性--css html 鼠标手型,鼠标形状,鼠标效果,样式

    css鼠标手型cursor中hand与pointer Example:CSS鼠标手型效果 <a href="#" style="cursor:hand"& ...

  8. 第二章 python基础(二)

    第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...

  9. codeforces 655B B. Mischievous Mess Makers(贪心)

    题目链接: B. Mischievous Mess Makers time limit per test 1 second memory limit per test 256 megabytes in ...

  10. leetcode 226. Invert Binary Tree(递归)

    Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia:This problem was ...