我想與plot()
添加一行與imshow()
在matplotlib, 其中多個不同尺寸的子圖被認爲製造的彩色地圖。當添加一條線, 顏色映射以某種方式更改大小。我如何解決這個問題?避免變化()來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')
在繪圖之前禁用自動縮放或將其設置爲「緊」,請參閱: http://stackoverflow.com/questions/16157180/how-to-remove-padding-border-in-a-matplotlib-subplot -solved/16162912#16162912 – 2013-05-10 07:12:56
正如@RutgerKassies所提到的,你可以用命令'plt.autoscale(False)'來避免這種情況。另外,在我看來,使用'plt.axhline(y = 20,c ='w',lw = 3)'而不是'plt.plot(range(60),20 * np)會是更好的解決方案。 (60),'w - ',lw = 3)',因爲['axhline'](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.axhline)跨越整個水平範圍軸,即使您平移/放大圖。 – hooy 2013-05-10 10:45:17
@nordev您應該將其作爲回答發佈 – tacaswell 2013-05-10 14:04:00