2016-11-26 2 views
0

в 2D сюжет, я обычно используюPython вертикальные линии на участке countour

l, = pylab.plot([10, 10], [-1000,1000], color="g", lw=0.5) для построения вертикальных линий в положении 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

Как построить вертикальную линию при Т = 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

Смежные вопросы