我想在使用imshow()
制作的matplotlib颜色地图中添加一条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.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
会在绘图中水平方向上延伸整个坐标轴的范围,即使您在绘图中进行了平移/缩放操作。 - sodd