R语言,如何画图.....

Python08

R语言,如何画图.....,第1张

q1, 首先要确定是barplot还是hist,如果是barplot的话,应该不存在breaks的问题,因为barplot的传入参数是个矩阵

我假设你要画的是个hist,我偶遇过这个问题,我的理解是hist的breaks的值要能被范围整除才行;比如x=1:200,break=7的话,就只能画出4个柱来,但如果breaks=10就没问题;基本上是这样的,偶尔也有例外;比如break=5就不行....奇怪得很

最后,没办法的办法,就只能用barplot代替hist了,barplot肯定不会有这个问题,统计下hist参数中的分布情况,转换成矩阵,用barplot吧;

q2, 貌似一般都用一组因素把这些类别区分开,我用abcde,表示你的小学,中学...了,比如这样:

a=1:7b=8:10c=c(9,10,11)d=c(40,55)e=100:110

f=factor(c(rep(1,sum(length(a),length(b),length(c))),rep(2,sum(length(d),length(e)))))#先用c()生成数组,在转换成factor,其实数组也ok的,不过plot()中两个数组和factor不一样 

x=c(a,b,c,d,e)

plot(x~f)

q3, 就我所知不行;yes或no一定也要是能映射到x,y范围内的点才行;你是想表示分类结果吗?如果是的话,通常用颜色,或者在点旁边的text表示。

q4, 举个例子吧

x=-50:50

y=x^2+x+1

z=10*abs(x)+1

 

plot(x,y,type='l')

lines(x,z,lty=3)

legend(c('type1','type2'), x=-20,y=2500, col=c('black','red'), lty=c(1,3))

legend的x和y是legend的左上角,匿名参数是类型名称,col,lty,pch 是对应的颜色,线类型,和点类型。

最后,我现在多用ggplot2,如果不抵触的话可以看看,和R的基础作图包思路不是很一样,但是图很清新的;

如果还有问题,建议把数据集data.frame粘贴几行上来,我也试试;

常用R数据类型是

向量

列表

矩阵

数组

因子

数据框

向量

当要创建具有多个元素的向量时,应该使用c()函数,表示将元素组合成一个向量。

>y<-c(12,13,14,15) >print(y)[1] 12 13 14 15

列表

列表是一个R对象,它可以包含许多不同类型的元素,如向量,函数,甚至其中的另一个列表。

>t<-list(a=c(1,2,3),b=c("yes","no"),c=c(12,13,14)) >print(t)$a[1] 1 2 3$b[1] "yes" "no" $c[1] 12 13 14

矩阵

矩阵是二维矩形数据集。 它可以使用向量输入到矩阵函数来创建。

>u<-matrix(c(2:10),ncol = 2) >print(u) [,1] [,2][1,] 2 7[2,] 3 8[3,] 4 9[4,] 5 10[5,] 6 2 数组

矩阵只能有两个维度,数组可以是任意数量的维数。数组函数采用一个dim属性,创建所需的维数。

>h<-array(c(3:8),dim = c(3,3,2)) >h, , 1 [,1] [,2] [,3][1,] 3 6 3[2,] 4 7 4[3,] 5 8 5, , 2 [,1] [,2] [,3][1,] 6 3 6[2,] 7 4 7[3,] 8 5 8 因子

因子是使用向量创建的R对象。 它将向量存储在向量中的元素的不同值作为标签。标签始终是字符,无论它是输入向量中是数字,还是字符或布尔等。它们在统计建模中很有用。

因子使用factor()函数创建。nlevels函数给出了级别的计数。

>factor<-c(1,2,3,4) >class(factor) [1] "numeric" >factor1<-as.factor(factor) >class(factor) [1] "numeric" >class(factor1) [1] "factor" 数据框

数据帧是表格数据对象。与数据帧中的矩阵不同,每列可以包含不同的数据模式。 第一列是数字,而第二列可以是字符,第三列可以是逻辑类型。它是一个长度相等的向量列表。

数据帧使用data.frame()函数创建。

>g<-data.frame(a=c(1,2,3),b=c("yes","no","yes"),c=c("male","female","male")) >g a b c1 1 yes male2 2 no female3 3 yes male