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 行),我的结果包含箭头: 箭头

但是当我想对我所有的 csv 文件进行建模时,不再有箭头,而是点(导致下面的地图): 大地图 上一个图放大以显示没有箭头: 箭头消失

您对这种行为有任何想法吗?问候。

4

1 回答 1

1

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

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

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

于 2013-06-29T05:36:12.663 回答