如何为Matplotlib的subfigure(非subplot)添加颜色条?
给Matplotlib的Subfigure添加颜色条的正确方法
问题原因
你遇到的错误为:AttributeError:'numpy.ndarray'对象没有'get_array'属性,原因是colorbar()方法需要接收图像对象(即imshow()的返回值),而不是直接传入numpy数组,直接传数组会触发上述属性错误。
修正后的代码
from matplotlib import pyplot as plt import numpy as np a = np.array([np.random.randint(-2,5,10) for x in range(0,5)]) fig = plt.figure(figsize=(10,10)) subfigs = fig.subfigures(2,1, wspace=0.1) axsTop = subfigs[0].subplots(1,1) axsBot = subfigs[1].subplots(1,4) # 保存imshow返回的图像对象,它包含颜色映射的关键信息 im = axsTop.imshow(a) # 将图像对象传给colorbar,并指定对应的坐标轴 subfigs[0].colorbar(im, ax=axsTop) plt.show() plt.close()
关键说明
- 调用
imshow()时必须保存返回的AxesImage对象,这是colorbar()方法的正确参数类型。 - 通过
subfigs[索引].colorbar()调用时,指定ax参数绑定对应的子图坐标轴,能确保颜色条与目标子图正确关联。
内容的提问来源于stack exchange,提问作者kbares
相关产品推荐
相关产品推荐

