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

Q1:现在要画个柱状图,只想要5条柱,那应该怎样打?用breaks=5试了下,只有4条,=6,就有7条。。怎么会这样。。x的范围是100,150,200那样,是不是这个问题影响了?如何改?
Q2:有一组数据,里面有5种类型,小学,中学,大学,博士,研究。类别是整齐和因素。然后有1千多个。要是我想把这5种类型分成2种: 中学和以下 和 中学以上。那该怎样写?
Q3:画了一个图,里面的x和y都是整数。要是我想在里面加些点,但是那些点的类别是不是整数,那能加吗?
要是想加,有什么方法。例子: x值是10~50,y:1~30.但是我想加的点是yes,no这个类型的数据。
Q4:然后怎样用legend?我打x上去都不行的?然后然后把数据分成不同的颜色?我只会一次过用
col,那全部点都变同一个色,要是想不同的几个点用其他颜色,那怎样写?

问题比较多,求详细解释,非常感谢先。

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:7;b=8:10;c=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粘贴几行上来,我也试试;

温馨提示:答案为网友推荐,仅供参考
相似回答