2013-06-27 109 views
3

下午好, 我想通過csv文件在地圖上繪製地表當前的數據。這裏是我的代碼:繪製地圖:箭頭消失

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.mlab as mlab 
from pylab import * 


# read CSV as a numpy array 
data = mlab.csv2rec('datasets/mix.csv') 

# print CSV file headers 
print data.dtype.names 

# load columns as vectors 
data_x = data['longitude'] 
data_y = data['latitude'] 
data_u = data['x'] 
data_v = data['y'] 

U = cos(data_u) 
V = sin(data_v) 


# plot raw data 
Q = quiver(data_x, data_y, U, V, color='black', units='width') 
qk = quiverkey(Q, 0.5, 0.92, 2, '.', labelpos='W', 
       fontproperties={'weight': 'bold'}) 
title('Current Surface') 

plt.show() 

隨着該csv文件(300線)的一小部分,我的結果包含箭頭: Arrows

但是,當我要建模我所有的CSV文件中,沒有箭頭了,但點(這導致下面的地圖): Large map 上圖放大,顯示沒有箭頭: Arrows disappear

您有有關此問題的任何想法? 此致敬禮。

+1

與點的曲線顯示了一個更小的區域,和負的值y軸;你有沒有嘗試手動設置軸限制到那些在你的第一個陰謀?第二個圖應該至少包含第一個圖。 – Evert

+0

地球情節是隨機採取的,以顯示點。 @Evert我看不到箭頭,只有分數。點在我看來有點拉長和錯誤,但不知道,如果我看到它有很多樂觀 – So4ne

+0

顯示所有的繪圖命令...它可能是你先繪製箭頭和地圖第二,至少imshow傾向於給出不透明的圖層隱藏了之前可能存在的任何東西。 – deinonychusaur

回答

1

在上一張圖片中,您有箭頭,但它們太短以至於看不到「尾巴」。問題是在你的第二個情節中,你有太密集的數據點:顫抖命令會自動縮放這些arrwos,使它們不重疊。如果你然後放大(我猜你放大了窗口,而不是通過在腳本中選擇一個更小的區域?),這個縮放不會被重新計算。

我會建議只繪製每10個左右的數據點(例如U [:10]),這應該有所幫助。可替代地,玩的「規模」關鍵字參數:

http://matplotlib.org/api/pyplot_api.html

+0

謝謝你的幫助 – So4ne