【发布时间】:2013-06-27 13:54:08
【问题描述】:
下午好, 由于 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 文件进行建模时,不再有箭头,而是点(导致下面的地图): 上图放大显示没有箭头:
您对这种行为有任何想法吗? 问候。
【问题讨论】:
-
带有点的绘图显示了一个小得多的区域,并且 y 轴为负值;您是否尝试过手动将轴限制设置为第一个图中的限制?第二个地块至少应该包含第一个地块。
-
地球图是随机拍摄的,以显示点。 @Evert 我看不到箭头,只有点。在我看来,Points 有点拉长和歪曲,但不确定我是否对此持乐观态度
-
显示所有绘图命令...可能是您先绘制箭头,然后绘制地图,至少 imshow 往往会提供一个不透明的图层来隐藏以前可能存在的任何内容。跨度>
-
@deinonychusaur 箭头后面没有地图,因为我正在绘制海流表面,所有数据都绘制了大陆。显示了我的所有代码。
-
@So4ne:我误解了。我在您的问题中进行了一些编辑,这应该可以防止误解(您没有说图 3 是图 2 的放大图)。
标签: python numpy matplotlib