Я хочу добавить строку с plot()
в цветовую карту, сделанную с помощью imshow()
в matplotlib, где предполагается несколько фигур разного размера. При добавлении строки карта цветов как-то меняет размер. Как мне обойти это?
Вот простой пример, иллюстрирующий проблему:
import scipy.stats as stat
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
fig = plt.figure(figsize=(12, 4))
plt.axes([.05,.1,.4,.8])
data = stat.uniform.rvs(size=2400).reshape((40,60))
plt.imshow(data,cmap=cm.jet,vmin=0,vmax=1)
plt.colorbar(fraction=.03)
plt.plot(range(60),20*np.ones(60),'w-',lw=3) # <-- causing problems
plt.title('the damn white line')
plt.autoscale(False)
. Кроме того, на мой взгляд, было бы лучшим решением использоватьplt.axhline(y=20, c='w', lw=3)
, а неplt.plot(range(60),20*np.ones(60),'w-',lw=3)
, посколькуaxhline
охватывает всю горизонтальную протяженность осей, даже если вы перемещаете/масштабируете график. - person sodd   schedule 10.05.2013