Python 如何正确处理色条?

Python 如何正确处理色条?,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,在阅读文档后,我一直在努力理解何时使用fig/ax/plt。现在,我只想给颜色栏一个标题,但我总是被困在知道哪些对象要存储所有内容以及以后要使用哪些对象上 我能得到一个一般性的解释来避免走这样的道路吗?有没有更合适的方法让我把热图传给ax,这样我就不会再遇到这种麻烦了 activity = 'Downstairs' layer = 1 seg_x = create_segments_and_labels(df[df['ActivityEncoded']==mapping[activity]],

在阅读文档后,我一直在努力理解何时使用fig/ax/plt。现在,我只想给颜色栏一个标题,但我总是被困在知道哪些对象要存储所有内容以及以后要使用哪些对象上

我能得到一个一般性的解释来避免走这样的道路吗?有没有更合适的方法让我把热图传给ax,这样我就不会再遇到这种麻烦了

activity = 'Downstairs'
layer = 1

seg_x = create_segments_and_labels(df[df['ActivityEncoded']==mapping[activity]],TIME_PERIODS,STEP_DISTANCE,LABEL)[0]
get_layer_output = K.function([model_m.layers[0].input],[model_m.layers[layer].output])
layer_output = get_layer_output([seg_x])[0]

try: 
    ax = sns.heatmap(layer_output[0].transpose())
except:
    ax = sns.heatmap(layer_output.transpose())


ax.set_xlabel('Kernels',fontsize=30)
ax.set_yticks(range(0,len(layer_output[0][0])+1,10))
ax.set_yticklabels(range(0,len(layer_output[0][0])+1,10))
ax.set_xticks(range(0,len(layer_output[0])+1,5))
ax.set_xticklabels(range(0,len(layer_output[0])+1,5))
ax.set_ylabel('Filters',fontsize=30)
ax.xaxis.labelpad = 10
ax.set_title('Filters vs. Kernels\n (Layer=' + model_m.layers[layer].name + ')(Activity=' + activity + ')',fontsize=35)

#I'd like to add text to the colorbar but I don't know how to get it here. Fig/plt/ax.colorbar() don't work

clb = fig.colorbar()

错误:
colorbar()缺少1个必需的位置参数:“mappable”

这里似乎有不同的问题。该错误是由于没有为
图colorbar
提供参数造成的。这应该是热图创建(但未返回)的
QuadMesh
对象。为此,您需要挖掘axes子项,
ax.collections[0]
。但是,通常默认情况下,您会为seaborn热图获得一个颜色条。您可以使用
cbar=True,cbar_kws={…}
向颜色栏提供任何参数。这里似乎有不同的问题。该错误是由于没有为
图colorbar
提供参数造成的。这应该是热图创建(但未返回)的
QuadMesh
对象。为此,您需要挖掘axes子项,
ax.collections[0]
。但是,通常默认情况下,您会为seaborn热图获得一个颜色条。您可以使用
cbar=True,cbar\u kws={…}
向颜色栏提供任何参数。