2013-06-27 112 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