R语言基本画图函数与多图多线的用法

常用统计作图函数汇总

plot()

hist() 直方图

stem() 茎叶图

boxplot() 箱线图(盒形图)

coplot() 协同图

qqnorm() 正态qq图

qqplot() 两总体qq图

1. 高级低级图形函数的常用选项

高、低级图形函数概述

高级图形函数可以迅速简便地绘制常见类型的图形,但是,某些情况下你可能希望绘制一些有特殊要求的图形。比如,你希望坐标轴按照自己的设计绘制,在已有的图上增加另一组数据,在图中加入一行文本注释,绘出多个曲线代表的数据的标签,等等。

低级图形函数让你在已有的图的基础上进行添加。

低级图形函数一般需要指定位置信息,其中的坐标指的是所谓用户坐标,即前面的高级图形函数所建立的坐标系中的坐标。坐标可以用两个向量x和y给出,也可以由一个两列的矩阵给出。如果交互作图可以用下面介绍的locator()函数来交互地从图形中直接输入坐标位置。

最常用高级函数的是plot()函数。比如,

- plot(x,y)(其中x,y是向量)对两个变量画散点图。

- 用plot(z) (其中z是一个定义了x变量和y变量的列表,或者一个两列的矩阵)也可以达到同样目的。

如果x是一个时间序列对象(时间序列对象用ts()函数生成),plot(x)绘制时间序列曲线图。

- 如果x是一个普通向量,则绘制x的值对其下标的散点图。

- 如果x是复数向量则绘制虚部对实部的散点图。

- 如果f是一个因子,则plot(f)绘制f的条形图(每个因子水平的个数)。

- 如果f是因子,y是同长度的数值向量,则plot(f,y)对f的每一因子水平绘制y中相应数值的盒形图。

- 如果d是一个数值型数据框,则plot(d)对d的每两个变量之间作图(散点图等)

load("F:/R/cl.RData")
plot(cl$Sex)

高级绘图函数常用选项

低级绘图函数常用选项

低级图形函数一般需要指定位置信息,其中的坐标指的是所谓用户坐标,即前面的高级图形函数所建立的坐标系中的坐标。坐标可以用两个向量x和y给出,也可以由一个两列的矩阵给出。如果交互作图可以用下面介绍的locator()函数来交互地从图形中直接输入坐标位置。

图形参数详解

图形元素

类型 解释
pch 指定用于绘制散点的符号。绘制的点往往略高于或低于指定的坐标位置,仅pch=“.”无这个问题。
lty=2 指定画线用的线型。缺省值lty=1是实线。从2开始是各种虚线。
lwd=2 指定线粗细,以标准线粗细为单位。这个参数影响数据曲线的线宽以及坐标轴的线宽。
col=2 指定颜色,可应用于绘点、线、文本、填充区域、图象。颜色值也可以用象”red”,”blue” 这样的颜色名指定。
font=2 用来指定字体的整数。一般font=1是正体,2是 黑体,3是 斜体,4是 黑斜体。
font.axisfont.labfont.mainfont.sub 分别用来指定坐标刻度、坐标轴标签、标题、小标题所用的字体。
adj=-0.1 指定文本相对于给定坐标的对齐方式。取0表示左对齐,取1表示右对齐,取0.5表示居中。此参数的值实际代表的是出现在给定坐标左边的文本的比例,所以adj=-0.1的效果是文本出现在给定坐标位置的右边并空出相当于文本10%长度的距离。
cex=1.5 指定字符放大倍数。

坐标轴与坐标刻度

许多高级图形带有坐标轴,还可以先不画坐标轴然后用axis()单独加。

函数box() 用来画坐标区域四周的框线。

坐标轴包括三个部件:轴线(用lty可以控制线型),刻度线,刻度标签。它们可以用如下的图形参数来控制:

参数 解释
lab=c(5, 7, 12) 第一个数为x轴希望画几个刻度线,第二个数为y轴希望画几个刻度线,这两个数是建议性的;第三个数是坐标刻度标签的宽度为多少个字符,包括小数点,这个数太小会使刻度标签四舍五入成一样的值。
las=1 坐标刻度标签的方向。0表示总是平行于坐标轴,1表示总是水平,2表示总是垂直于坐标轴。
mgp=c(3,1,0) 坐标轴各部件的位置。第一个元素为坐标轴位置到坐标轴标签的距离,以文本行高为单位。第二个元素为坐标轴位置到坐标刻度标签的距离。第三个元素为坐标轴位置到实际画的坐标轴的距离,通常是0。
tck=0.01 坐标轴刻度线长度,单位是绘图区域大小,值为占绘图区域的比例。tck小于0.5时x轴和y 轴的刻度线将统一到相同的长度。取1时即画格子线。取负值时刻度线画在绘图区域的外面。
xaxs=”s”yaxs=”d” 控制x轴和y轴的画轴方法。取值为”s”(即standard)或”e”(即extended)的时候数据范围控制在最小刻度和最大刻度之间。取”e”时如果有数据点十分靠近边缘轴的范围会略微扩大。这种画轴方式有时会在轴的一边留下太大的空白。取值为“i”(即internal)或“r”(此为缺省)使得刻度线都落在数据范围内部,而“r”方式所留的边空较小。取值设为”d”时会锁定此坐标轴,后续的图形都使用与它完全相同的坐标轴,这在要生成一系列可比较的图形的时候是有用的。要解除锁定需要把这个图形参数设为其它值。

一页多图

一页多图用mfrow参数或mfcol参数规定,如:

par(mfrow=c(3,2)) 表示同一页有三行两列共六个图,而且次序为按行填放。

类似地,par(mfcol=c(3,2))规定相同的窗格结构,但是次序为按列填放,即先填满第一列的三个再填第二列。

par(mfrow=c(1,1))即可。缺省时无外边空。为了规定外边空大小,可以用omi参数或oma参数。omi参数使用英寸为单位,oma参数以文本行高为单位,两个参数均为四个元素的向量,分别给出下、左、上、右方的边空大小。

如:par(oma=c(2,0,3,0))函数mtext用来在外边空加文字标注。

其用法为mtext(text, side = 3, line = 0, outer = FALSE)

在多图环境中还可以用mfg参数来直接跳到某一个窗格,比如par(mfg=c(2,2,3,2))表示在三行两列的多图环境中直接跳到第二行第二列位置。mfg参数的后两个表示多图环境的行、列数,前两个表示要跳到的位置。

可以不使用多图环境而直接在页面中的任意位置产生一个窗格来绘图,参数为fig,如:par(fig=c(4,9,1,4)/10)此参数为一个向量,分别给出窗格的左、右、下、上边缘的位置,取值为占全页面的比例,比如上面的例子在页面的右下方开一个窗格作图。

图形边空

S中一个单独的图由绘图区域(绘图的点、线等画在这个区域中)和包围绘图区域的边空组成,边空中可以包含坐标轴标签、坐标轴刻度标签、标题、小标题等,绘图区域一般被坐标轴包围。

边空的大小由mai参数或mar参数控制,它们都是四个元素的向量,分别规定下方、左方、上方、右方的边空大小,其中mai取值的单位是英寸,而mar的取值单位是文本行高度。

例如:

par(mai=c(1, 0.5, 0.5, 0))
par(mar=c(4, 2, 2, 1))

这两个图形参数不是独立的,设定一个会影响另一个。S缺省的图形边空常常太大,以至于有时图形窗口较小时边空占了整个图形的很大一部分。

通常我们可以取消右边空,并且在不用标题时可以大大缩小上边空。例如下例可以生成十分紧凑的图形:

oldpar <- par(mar=c(2,2,1,0.2))
plot(x,y)

在一个页面上画多个图时边空自动减半,但我们往往还需要进一步减小边空才能使多个图有意义。

交互图形函数

函数locator(n, type)运行时会停下来等待用户在图中点击,然后返回图形中鼠标点击的位置的坐标。等待点击时用鼠标中键点击可以选择停止等待,立即返回。参数n指定点击多少次后自动停止,缺省为500次;参数type如果使用则可指定绘点类型,与plot()函数中的type 参数用法相同,在鼠标点击处绘点(线、垂线,等等)。locator()的返回值是一个列表,有两个变量(元素)x和y,分别保存点击位置的横坐标和纵坐标

例如,为了在已经绘制的曲线图中找一个空地方标上一行文本,只要使用如下程序:

text(locator(1), "Normal density", adj=0) 

text()函数的adj参数用一个数字表示文本串相对于给定的坐标的画法,adj=0表示给定坐标为文本串左侧的坐标,adj=1表示给定坐标为文本串右侧的坐标,adj=0.5表示给定坐标为文本串中间的坐标。

函数identify(x, y, labels)在运行时也会停下来等待用户点击,直到按了鼠标中键,任何返回用户在图形中用鼠标点击的点的序号,点击时对点击的点加标签。参数x和y给出要识别的各个点的坐标。labels参数指定点击某个点时要在旁边绘制的文本标签,缺省时标出此点的序号,如果只需要返回值而不想画任何标记则可以在调用此函数时加一个plot=F参数。

注意identify()与locator()不同,locator()返回图中任意点击位置的坐标,而identify() 只返回离点击位置最近的点的序号。例如,我们在向量x和y中有若干个点的坐标,运行如下程序:

 attach(cl)
 plot(Height, Weight) ;
 identify(Height,Weight)

这时显示转移到图形窗口,进入等待状态,用户可以点击图中特别的点,该点的序号就会在旁边标出。为了结束,只要单击鼠标中键或单击右键并选择停止。返回结果为你点击的各个点的序号:

警告: 已经找到了最近的点

警告: 没有0.25英尺的点

[1] 1 2 10 15 16

2. hist直方图

hist(x)作向量x的直方图。缺省时自动确定分组,也可以用nclass=参数指定分组个数,或者用breaks=参数指定一个分组点向量。如果指定了prob=T则纵轴显示密度估计。

3. stem茎叶图

Usage:

stem(x, scale = 1, width = 80, atom = 1e-08)

Arguments:

x: a numeric vector.

scale: This controls the plot length.

width: The desired width of plot.

atom: a tolerance.

References:

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S

Language_. Wadsworth & Brooks/Cole.

Examples:

stem(islands)

stem(log10(islands))

stem(cl$Weight, scale = 1, width = 80, atom = 1e-08)
 The decimal point is 1 digit(s) to the right of the |

 4 | 1
 6 | 7
 8 | 3445508
 10 | 0332233
 12 | 83
 14 | 0

4. boxplot箱线图

箱线图的图形中的参数意义如下:

例子: 作了两个图叠加,一个为subset= supp == “VC“,另一个为subset= supp == ”OJ“.数据ToothGrowth有两个数量变量(len,dose)和一个属性变量(supp); 对每个supp,dose各有三个值(各形成三个盒形图). len ~ dose意味着box为len所做.

data(ToothGrowth)
boxplot(len ~ dose, data = ToothGrowth, boxwex = 0.25, at = 1:3 - 0.2, subset= supp == "VC", col="yellow", main="Guinea Pigs' Tooth Growth", xlab="Vitamin C dose mg", ylab="tooth length", ylim=c(0,35))
boxplot(len ~ dose, data = ToothGrowth, add = TRUE, boxwex = 0.25, at = 1:3 + 0.2, subset= supp == "OJ", col="orange")
legend(2, 9, c("Ascorbic acid", "Orange juice"), fill = c("yellow", "orange"))

boxplot(cl$Height~cl$Sex,data=cl,col = "lightgray");

5. coplot() 协同图

attach(cl)
coplot(Weight ~ Height | Sex) 

如果z是一个数值型变量,则coplot() 先对z的取值分组,然后对z的每一组取值分别绘图。

甚至可以用如coplot(y~x | x1+x2)表示对x1和x2的每一水平组合绘图。

coplot()和pairs()函数缺省绘制散点图,但可以用一个panel= 参数指定其它的低级绘图函数,如lines,panel.smooth等。

tsplot(x)绘制时间序列曲线图。多个参数时tsplot(x1, x2, ...)表示绘制多条曲线,自动统一曲线取值范围。如果参数非时间序列对象则以下标1,2,3等为横坐标绘图。

6. qqnorm() 正态qq图与qqplot() 两总体qq图

- qqnorm(x), qqline(x), qqplot(x,y)作分位数-分位数图。

- qqnorm(x)对向量x作正态概率(纵轴为次序统计量值,横轴为对应该次序统计量的标准正态分布分位数值)。

- qqline(x) 除作qqnorm(x)图之外还画一条拟合曲线。

qqplot(x,y)把x和y的次序统计量分别画在x轴和y 轴以比较两个变量的分布。

x <- rnorm(50)
y <- rexp(60)
qqplot(x,y)#可以判断是不是同一个类型的分布

多图多线

1 多图

par(mfrow=c(2,2))#准备画22的4个图
plot(compression, distance,main= "Hooke's Law") #只有标题的图
plot(compression, distance,main= "Hooke's Law", xlab= "x",ylab= "y") #标题+x,y标记
identify(compression,distance) #标出点号码
plot(compression, distance,main="Hooke's Law") #只有标题的图
text(46,120, "f=1/2*k*s")#在指定位写入文字
plot(compression, distance,main="Hooke's Law") #只有标题的图
text(locator(2), "I am here!") #在点击的两个位置写入文字

2 标签

#画图 (对数变换后)
Par(cex=0.7,mex=0.7) #character (cex) & margin (mex) expansion
plot(log(body),log(brain))
text(x=log(body), y=log(brain),labels=row.names(Animals), adj=1.5)# adj=0 implies left adjusted text

#画图 (对数变换后)
plot(log(body),log(brain))
identify(log(body),log(brain),row.names(Animals))

3 颜色画图函数

view.colours = function(){
plot(1, 1, xlim=c(0,14), ylim=c(0,3), type="n", axes=F, xlab="",ylab="")
text(1:6, rep(2.5,6), paste(1:6), col=palette()[1:6], cex=2.5)
text(10, 2.5, "Default palette", adj=0)
rainchars = c("R","O","Y","G","B","I","V")
text(1:7, rep(1.5,7), rainchars, col=rainbow(7), cex=2.5)
text(10, 1.5, "rainbow(7)", adj=0)
cmtxt = substring("cm.colors", 1:9,1:9)
# Split "cm.colors" into its 9 characters
text(1:9, rep(0.5,9), cmtxt, col=cm.colors(9), cex=3)
text(10, 0.5, "cm.colors(9)", adj=0)
}
view.colours()

4 多线

高级低级函数画图

x <- seq(-pi, pi, len = 65)
plot(x, sin(x), type = "l", ylim = c(-1.2, 1.8), col = 3, lty = 2)
points(x, cos(x), pch = 3, col = 4)
lines(x, tan(x), type = "b", lty = 1, pch = 4, col = 6)
title("legend(..., lty = c(2, -1, 1), pch = c(-1,3,4), merge = TRUE)", cex.main = 1.1)
# 注意图例书写方式
legend(-1, 1.9, c("sin", "cos", "tan"), col = c(3,4,6), lty = c(2, -1, 1), pch = c(-1, 3, 4), merge = TRUE, bg='gray90')

matplot画图

matplot :用矩阵的列画多线图

Usage:

matplot(x, y, type = "p", lty = 1:5, lwd = 1, lend = par("lend"),
 pch = NULL,
 col = 1:6, cex = NULL, bg = NA,
 xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL,
 ..., add = FALSE, verbose = getOption("verbose"))
require(grDevices)
matplot((-4:5)^2, main = "Quadratic") # almost identical to plot(*)
sines <- outer(1:20, 1:4, function(x, y) sin(x / 20 * pi * y))
matplot(sines, pch = 1:4, type = "o", col = rainbow(ncol(sines)))
matplot(sines, type = "b", pch = 21:23, col = 2:5, bg = 2:5,
 main = "matplot(...., pch = 21:23, bg = 2:5)")

5 时间序列图

x=runif(100)
x=ts(x,start=1960+(3/12),frequency=12)#构造时间序列frequency=12即按个月份构造
options(digits=2)
x
 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1960  0.444 0.849 0.459 0.659 0.277 0.268 0.958 0.926 0.595
1961 0.250 0.769 0.111 0.944 0.593 0.459 0.670 0.331 0.045 0.694 0.473 0.227
1962 0.037 0.181 0.562 0.455 0.419 0.968 0.288 0.187 0.143 0.548 0.437 0.280
1963 0.149 0.623 0.937 0.108 0.755 0.077 0.963 0.781 0.660 0.458 0.787 0.176
1964 0.997 0.650 0.045 0.849 0.018 0.744 0.148 0.964 0.844 0.660 0.080 0.303
1965 0.954 0.217 0.909 0.658 0.991 0.797 0.020 0.363 0.183 0.332 0.793 0.676
1966 0.459 0.270 0.813 0.818 0.138 0.780 0.679 0.029 0.553 0.895 0.548 0.480
1967 0.898 0.212 0.299 0.223 0.637 0.167 0.102 0.424 0.438 0.058 0.048 0.474
1968 0.254 0.381 0.532 0.089 0.825 0.337 0.382
plot(x,main="Time series")

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • R语言 小数点位数的设置方式

    经常用数据分析,有时不同的文件的小数位数不一样,但是我们可以让它们的位数保持一致的,下面的介绍就是设置小数位数. 使用options函数 > options(digits) 默认为7位 > a=0.234333323#9位> a[1] 0.2343333 下面开始设置下 > options(digits=3)> a=0.34434434#8位> a[1] 0.344 看最大的位数 > options(digits=27)Error in options(digit

  • R语言导入CSV数据的简单方法

    第一.查看读取路径:getwd() ``` getwd() #获取文件存储位置 [1] "E:/R/meta-rbook-examples" #文件位置,如果是自己想要的存储位置可以直接将文件放到这里,如果不是更改路径. `` 第二.修改路径: setwd("E:/R")#设置新的路径`,将文件放入该文件夹中 第三.读取CSV文件: data1<-read.csv("dataset01.csv",as.is = TRUE)#读取文件名为:d

  • 聊聊R语言中Legend 函数的参数用法

    如下所示: legend(x, y = NULL, legend, fill = NULL, col = par("col"), border = "black", lty, lwd, pch, angle = 45, density = NULL, bty = "o", bg = par("bg"), box.lwd = par("lwd"), box.lty = par("lty")

  • R语言绘图样式设置操作(符号,线条,颜色,文本属性)

    设置图像样式有两种方法,一种是全局修改,一种只针对一幅图片有效. 全局修改 a<-c(1:10) #全局修改 old_par<-par(no.readonly=TRUE) #记录默认样式到变量old_par中 par(lty=2,pch=17) #设置线型lty=2虚线,pch=17实心三角形,键值对的方式进行设置 #第一幅图,已经和默认样式不一样了 b<-rnorm(10) plot(a,b,type='b') #第二幅图,和第一幅图样式一样 b<-rnorm(10) plot(

  • R语言给图形填充颜色的操作(polygon函数)

    1. 使用polygon进行纯色填充 # polygon函数介绍 polygon(x, y = NULL, density = NULL, angle = 45, border = NULL, col = NA, lty = par("lty"), ..., fillOddEven = FALSE) 其中density为填充的阴影线的密度,angle为阴影线的斜率(角度).值得注意的是,当你需要纯色填充时,density和angle可以忽略不写.然后border为边框的颜色.同时bor

  • R语言基本画图函数与多图多线的用法

    常用统计作图函数汇总 plot() hist() 直方图 stem() 茎叶图 boxplot() 箱线图(盒形图) coplot() 协同图 qqnorm() 正态qq图 qqplot() 两总体qq图 1. 高级低级图形函数的常用选项 高.低级图形函数概述 高级图形函数可以迅速简便地绘制常见类型的图形,但是,某些情况下你可能希望绘制一些有特殊要求的图形.比如,你希望坐标轴按照自己的设计绘制,在已有的图上增加另一组数据,在图中加入一行文本注释,绘出多个曲线代表的数据的标签,等等. 低级图形函数

  • R语言利用plot()函数画图的基本用法

    plot()函数在R语言画图中位置十分重要,现在就对其具体用法做一个总结. 基本用法: plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",type="线型",xlab="x轴名称",ylab="y轴名称",xlim = c(x轴范围,x轴范围),ylim = c(y轴范围,y轴范围)) 示例代码为: plot(c(1:6),c(1:6),main="test"

  • R语言基础画图实例讲解

    1.plot函数 plot(x,y,xlim=c(0,100),ylim=c(0.4,1), type="o",lwd=2,col=2,pch=24,cex=1.5, yaxs="i",xaxs="i", xlab="Sample Ration(%)",ylab="Accuracy") x,y : 要画图的x轴内容和y轴内容 xlim,ylim: x轴和y轴的范围 type: 表示图的形状,是点.线.点线.

  • R语言作图之density plot(密度图)的制作步骤

    上次分享了小提琴曲线(violin plot)的作图方法,今天小仙同学给大家介绍一下如何用R画出漂亮的密度图(density plot). Step1. 绘图数据的准备 首先还是要把你想要绘图的数据调整成R语言可以识别的格式,把excel保存成csv格式. 数据的格式如下图:一列表示一种变量,第一行是列名 Step2. 绘图数据的读取 data<-read.csv("your file path", header = T) #注释:header=T表示数据中的第一行是列名,如果没

  • R语言绘制Bubble Matrix气泡矩阵图

    目录 Step1.绘图数据的准备 Step2.绘图数据的读取 Step3.绘图所需package的安装.调用 Step4.绘图 Step5.美化 又是一个好久不见,朋友们你们最近还好吗!最近小仙同学刚经历了人生中的一个重要的里程碑——延毕.在预料之中.又如期而至的两个字,小仙心里也是很复杂,可终究跟“毕业”二字沾了边,就当它是好事啦! 今天要给大家介绍的是气泡矩阵图,要模仿的图形如下.小仙同学一直有一个困惑:什么样的数据应该画什么类型的图,才能精确地展示数据表达出自己的意思?对于气泡矩阵图,小仙

  • R语言使用gganimate创建可视化动图

    目录 前言 加载R包,数据 ggplot2绘制 gganimate 动态 参考资料 前言 介绍一个主要用于绘制动画的ggplot2的扩展包---gganimate包. Hans Rosling的关于“New Insights on Poverty”的TED演讲绝对是对我影响最大的几个TED之一,原来数据可以这样展示,,,可视化可以这样炫,,,故事可以这样讲... 下面尝试使用 gganimate 包和 gapminder 数据集,实现类似可视化过程. 加载R包,数据 #R包安装 install.

  • R语言学习VennDiagram包绘制韦恩图示例

    目录 引言 一 需要安装和导入的包 二 使用函数及参数 三 知道各个数据集的个数以及重叠(交叉)的个数 2.1 两个已知数据集的韦恩图 2.2 三个已知数据集的韦恩图 四 根据数据集合绘制韦恩图 4.1 四个数据集合 4.2 五个数据集合 引言 本版块会持续分享一些常用的结果展示的图形. 在得到数据之后,我们经常会用到维恩图来展示各个数据集之间的重叠关系.本文简单的介绍R语言中的VennDiagram包绘制数据集的维恩图. 一 需要安装和导入的包 install.packages("VennDi

  • R语言的xtabs函数实例讲解

    今天在做一个列联表独立性检验的时候,总是无法处理好要求的数据类型,偶然的机会,看到了xtabs()函数,感觉很适合用来做列联表,适合将一列数据转换成列联表. shifou <- c("yes","yes","no","no") xinbie <- c("nan","nv","nan","nv") freq <- c(34,38,2

  • R语言绘图技巧导出高清图方法

    上一次小仙同学分享了 facet violin plot的画法,最后还卖了个关子,给大家留了个悬念.科研文章的插图通常要求比较高,不仅要精准地展示出数据,选对图表类型,还需要简洁优美(?翻译成人话就是,同样的数据能不能多“卖”几分,就看图够不够高大上啦).小仙同学在画图的时候遇到的一个问题就是,RStudio直接导出的图,怎么这么不清晰?为什么教程里别人的图都那么清晰呢?这时候可能就有同学就会说,这还不简单,直接导出矢量图不就可以了吗? 我们来看下,RStudio可以导出的图片格式有这么几种,小

  • R语言数可视化Split violin plot小提琴图绘制方法

    最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起.为了跟上可视化的潮流,小仙也来尝试画一下这个没查到正经名字的图. Step1. 绘图数据的准备 首先要把你想要绘图的数据调整成R语言可以识别的格式,建议大家在excel中保存成csv格式.作图数据格式如下: Step2. 绘图数据的读取 data<-read.csv("your file path", header = T) #

随机推荐