2016-07-28 107 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