2

異なるサイズのいくつかのサブフィギュアが想定されている、matplotlib でplot()作成されたカラー マップに線を追加したいと考えています。imshow()線を追加すると、カラーマップのサイズがなぜか変わります。どうすればこれを回避できますか?

問題を説明する簡単な例を次に示します。

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')
4

2 に答える 2

0

これは非常に簡単な代替ソリューションです: imshow() と plot() の順序を変更する

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.plot(range(60),20*np.ones(60),'w-',lw=3)  #  <--- mow before imshow()
plt.imshow(data,cmap=cm.jet,vmin=0,vmax=1)
plt.colorbar(fraction=.03)
plt.title('the damn white line')

出力は、nordev の回答と同じです。

于 2013-05-13T02:56:53.933 に答える