2016-07-28 105 views
0

我使用'filled.contour()'绘制R中的地图,我不明白为什么这个函数会切换x,y轴。我有:使用'filled.contour'绘制地图

x=1:20 
y=1:10 
z=array(seq(1,2000,1),dim=c(length(y),length(x))) 
filled.contour(x,y,z,plot.title=title(main="Test",xlab="X",ylab="Y") ) 

错误.filled.contour(X,Y,Z,水平,COL):尺寸不符

但如果我输入:

z=array(seq(1,2000,1),dim=c(length(x),length(y))) 

它会正确绘制地图。 关于数组的所有文档都显示'dim'被定义为dim(y,x) 我错过了什么吗?

回答

0

问题是你正在通过轮廓函数。您必须按照您设置z的顺序传递x和y。所以z=array(seq(1,2000,1),dim=c(length(x),length(y)))工作的原因是因为你要求

filled.contour(**x**,**y**,z,plot.title=title(main="Test",xlab="X",ylab="Y")) 

下面的代码按照你的希望运行。

x=1:20 
y=1:10 
z=array(seq(1,2000,1),dim=c(length(y),length(x))) 
filled.contour(y,x,z,plot.title=title(main="Test",xlab="X",ylab="Y") ) 
+0

谢谢亚当。我试图做的是Codex = 1:20 y = 1:10 z = array(seq(1,2000,1),dim = c(length(y),length(x))) – Augusto

+0

@Augusto你运行过我的代码吗?它使用的是完全一样的线,当您在代码中显示上图时调用绘图时,您只需交换y和x的位置。 –

+0

谢谢亚当,现在我明白了这个功能的行为。我感谢您的帮助。瑞格斯,Augusto – Augusto