大侠好,我想问个作图的问题,就是如何将两组数据做对称图,横坐标z数据共用置中间,然后两个纵坐标数据分别为x,y,并barplot到一个对称的柱形图上去。谢谢!!!

数据如下:

x<-c(1,3,5,7,9,11,9,7,5,3,1)

y<-c(11,9,7,5,3,1,3,5,7,9,11)

z<-c(1,2,3,4,5,6,7,8,9,10,11)

回复 第1楼 的 qingwa85:可以把你心中想要的结果用手画出来,扫描后贴出来。起码我没看太明白你的语言描述。[s:13]

有道理,附个图EXCEL做的类似的图,将两个柱状图简单的合并一起了,当然这只是效果图了!![s:13]希望大家鼎力相助啊!!

[attachment=230112,1724]

你要画的图叫背靠背柱形图(back-to-back barplot)吧,

Rgraphics中一个例子是画这种的。

<br />
> x= c(1, 3, 5, 7, 9, 11, 9, 7, 5, 3, 1)<br />
> y= c(11, 9, 7, 5, 3, 1, 3, 5, 7, 9, 11)<br />
> z= 1:11<br />
> plot.new()<br />
> plot.window(xlim= c(-12, 12), ylim= c(0, 10))<br />
> tick= seq(-12, 12, 2)<br />
> lines(rep(0, 2), c(0, 10))<br />
> bin= 0.2<br />
> y.co= 1:length(x)<br />
> rect(-y, y.co-bin, 0, y.co+bin, col= 'red')<br />
> rect(0, y.co-bin, x, y.co+bin, col= 'blue')<br />
> axis(1, at= tick, labels= abs(tick), pos= 0)<br />
</p>

如果嫌不满意的话,可以计数之后再来画图

<br />
> x.t= table(x)<br />
> y.t= table(y)<br />


然后再用rect来画图,应该可以得到自己想要的图形。
</p>

呵呵,好的。谢谢楼上的哈!![s:13]

21 天 后

http://cos.name/cn/topic/101239

这里有介绍。。。[s:18]