在countour情节中的Python垂直线

时间:2016-11-26 19:02:17

标签: python matplotlib lines contour

在2D情节中,我通常使用

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 个答案:

答案 0 :(得分: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