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

Участок с точками показывает гораздо меньше области, а отрицательные значения для оси у; попробовали ли вы вручную установить ограничения по осям тем, что были на вашем первом сюжете? Второй участок должен содержать по крайней мере первый участок. – Evert

+0

Земельный участок взят случайным образом, чтобы показать точки. @Evert Я не вижу стрелы, указывает только. Очки кажутся мне немного удлиненными и неустойчивыми, но не уверен, что я вижу это с большим оптимизмом. – So4ne

+0

Покажите все команды построения графика ... возможно, вы намереваетесь сначала стрелки, а вторая карта, по крайней мере, imshow имеет тенденцию давать непрозрачный слой, скрывающий все, что возможно было раньше. – deinonychusaur

ответ

1

На последнем изображении у вас есть стрелки, но они настолько короткие, что вы не видите «хвосты». Проблема в том, что во втором сюжете у вас слишком плотные данные: команда колчана автоматически масштабирует аранжи, чтобы они не перекрывались. Если вы затем увеличите масштаб (я думаю, вы увеличили масштаб окна, а не выбрав меньшую область в сценарии?), Это масштабирование не пересчитывается.

Я бы предложил отображать только 10-ю или около того дату (например, U [:: 10]), это должно помочь. С другой стороны, играть с «шкалы» ключевого слова аргумент:

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

+0

Спасибо за вашу помощь – So4ne