2016-11-26 71 views
0

在2D圖,我通常使用Python的垂直線在countour情節

l, = pylab.plot([10, 10], [-1000,1000], color="g", lw=0.5) 繪製在x位置10的垂直線,從-1000到在垂直軸1000。

我想在等高線圖上做同樣的事 如何繪製等高線圖中的垂直線?

特別是我使用此代碼波紋管

# Blue-White-Red colorbar for plots with negative and positive values. 
cdict = {'red': ((0.0, 0.0, 0.0), 
        (0.5, 1.0, 1.0), 
        (1.0, 1.0, 1.0)), 
     'green': ((0.0, 0.0, 0.0), 
        (0.5, 1.0, 1.0), 
        (1.0, 0.0, 0.0)), 
     'blue': ((0.0, 1.0, 1.0), 
        (0.5, 1.0, 1.0), 
        (1.0, 0.0, 0.0))} 
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap', cdict, 1024) 

fig = pylab.figure(figsize=(3.46,2.14), frameon=False) 
pylab.axes([0.17, 0.20, 0.50, 0.75]) 
p1 = pylab.imshow(
    dens.transpose()*10000.0, 
    cmap=my_cmap, aspect='auto', 
    interpolation='bicubic', 
    vmin=-2.0, vmax=2.0, 
    extent=(times[0],times[1],y[0]/1000.0,y[-1]/1000.0)) 
pylab.xlabel(r"$t\,[{\rm ps}]$") 
pylab.ylabel(r"$y\,[\mu{\rm m}]$") 
pylab.xlim([tmin,tmax]) 
#pylab.ylim(eRange) 
ax2 = pylab.gcf().add_axes([0.7, 0.2, 0.1, 0.75]) 
pylab.colorbar(mappable=p1,cax=ax2) 
#pylab.axvline(x=5.0, color='k', linestyle='--') 
ax2.xaxis.set_ticks([]) 
ax2.yaxis.tick_right() 
pylab.figtext(0.75, 0.10, r"$\times 10^{-4}$") 

contour plot example

如何繪製在t = 5垂直線?

上述註釋行不起作用。

+1

究竟你是 「不工作」 是什麼意思?你有錯誤嗎? – ImportanceOfBeingErnest

回答

0

以下代碼使用imshow以及contour工作得很好。 它使用繪製兩點之間的一條直線的準確性。

import matplotlib.pyplot as plt 
import numpy as np 

z = np.random.rand(21,21) 

fig, (ax, ax2)= plt.subplots(ncols=2, figsize=(7,3)) 
ax.imshow(z, extent=[0,20,0,20], cmap="viridis") 
ax.plot([5,5],[0,20], lw=10, c="r") 

ax2.contour(z) 
ax2.plot([5,5],[0,20], lw=10, c="r") 

plt.show() 

enter image description here