我是matplotlib的新手。当我生成一系列带有循环的contourf图时,matplotlib会创建n个重复的颜色条(颜色条有固定的范围)
我必须销毁每个循环的旧颜色条,如果是这样,我该怎么做?
更新
好的,但如果我为contourf图生成一个颜色条。如何确保包含整个范围的比例。我尝试过使用“clip = False”&延伸= '两者'
c_scale = matplotlib.colors.Normalize(vmin=0, vmax=1,clip=False)
cbar = plt.colorbar(cmap=plt.cm.jet,norm=c_scale,shrink=0.5,extend='both')
答案 0 :(得分:1)
contourf不会生成颜色条,而colorbar会生成。
如果颜色条具有固定范围,您可以在开头调用colorbar()一次,然后仅绘制新的contourf而不调用colorbar()
一个例子:
#In which we make contourplots with just one colorbar
import matplotlib.pyplot as plt
import numpy as np
plt.figure(1)
plt.clf()
plt.contourf(np.random.random((10,10)))
plt.colorbar()
for k in xrange(10):
plt.contourf(np.random.random((10,10)))
plt.show()
答案 1 :(得分:0)
如果要连续更新颜色栏和图中的其他所有内容,请在开头使用plt.ion()启用交互式绘图,并使用plt.draw()和plt.clf()的组合连续更新情节
import matplotlib.pyplot as plt
import numpy as np
plt.ion(); plt.figure(1);
for k in range(10):
plt.clf(); plt.subplot(121);
plt.contourf(np.random.randn(10,10)); plt.colorbar();
plt.subplot(122,polar=True)
plt.contourf(np.random.randn(10,10)); plt.colorbar();
plt.draw();
请注意,这适用于包含不同子图和各种类型图(即极地或笛卡儿)的图形