绘制地图:箭头消失

时间:2013-06-27 13:54:08

标签: python numpy matplotlib

下午好, 我正试图通过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 个答案:

答案 0 :(得分:1)

在最后一张图片中你有箭头,但它们很短,你看不到“尾巴”。问题是在第二个图中,您的数据点太密集:箭头命令会自动缩放箭头,使它们不重叠。如果你然后放大(我猜你在窗口中缩放,而不是通过在脚本中选择一个较小的区域?),则不会重新计算此缩放。

我建议只绘制每10个左右的数据点(例如U [:: 10]),这应该有帮助。或者,使用“scale”关键字参数:

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