2015-10-19 72 views
0

我的引擎箭头中没有引用箭头,我找不到原因。没有显示引导箭头参考箭头

有人可以看到我在做什么错吗?我原本没有使用gridspec,但我需要这样才能让我的数字正确缩放。当我不使用gridspec时,参考箭头显示,但现在不再是了。为什么gridspec会导致我失去颤动钥匙的参考箭头?

Matplotlib版本:1.4.3

Python版本:2.7.10

注:

missing quiver key reference arrow

:从 here.

import matplotlib.pyplot as plot 
import matplotlib as mpl 
from mpl_toolkits.basemap import Basemap 
import numpy as np 
from datetime import datetime, timedelta 
import matplotlib.gridspec as gridspec 
from matplotlib.dates import date2num 

def stick_plot(time, u, v, **kw): 
    width = kw.pop('width', 0.002) 
    headwidth = kw.pop('headwidth', 0) 
    headlength = kw.pop('headlength', 0) 
    headaxislength = kw.pop('headaxislength', 0) 
    angles = kw.pop('angles', 'uv') 
    ax = kw.pop('ax', None) 


    if angles != 'uv': 
     raise AssertionError("Stickplot angles must be 'uv' so that" 
         "if *U*==*V* the angle of the arrow on" 
         "the plot is 45 degrees CCW from the *x*-axis.") 

    if not ax: 
     fig, ax = plot.subplots() 

    q = ax.quiver(date2num(time), [[0]*len(time)], u, v, 
       angles='uv', width=width, headwidth=headwidth, 
       headlength=headlength, headaxislength=headaxislength, 
       **kw) 

    ax.axes.get_yaxis().set_visible(False) 
    ax.xaxis_date() 
    return q 



x = np.arange(100, 110, 0.1) 
start = datetime.now() 
time = [start + timedelta(days=n) for n in range(len(x))] 
u, v = np.sin(x), np.cos(x) 

gs = gridspec.GridSpec(1,3, width_ratios = [5,1,3], height_ratios = [2,1]) 
fig = plot.figure(figsize=(11,8)) 
ax1 = plot.subplot(gs[:, :-1]) 
ax2 = plot.subplot(gs[:, -1]) 

map1 = Basemap(ax = ax1) 
map1.drawcoastlines() 

q = stick_plot(time, u, v, ax = ax2) 

ref = 1 
qk = plot.quiverkey(q, 0.3, 0.85, ref, 
       "%s N m$^{-2}$" % ref, 
       labelpos='N', coordinates='axes') 

_ = plot.xticks(rotation=30) 

plot.show() 

所拍摄的照片的柱状图功能

回答

1

我已经si类似问题。明确地设置linewidth关键字呼叫quiver()解决了我的问题。