Python 如何缩小色条占用的区域?

Python 如何缩小色条占用的区域?,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,我想在一个地块上画两个色条,并附上一张地图。不幸的是,色条和情节本身一样大。即使在色条编码中使用收缩功能,它也只会收缩色条,而不会收缩色条所占的大小 有没有一种简单的方法可以让我的情节占用更多的空间,而色条占用更少的空间?有没有一种简单的方法可以让色条同时出现在底部 代码如下 plt.clf() my_cmap = cm.get_cmap('YlOrRd') cs = map.contourf(x,y,bj,levels = Y,cmap=my_cmap,locator=mpl.ticke

我想在一个地块上画两个色条,并附上一张地图。不幸的是,色条和情节本身一样大。即使在色条编码中使用收缩功能,它也只会收缩色条,而不会收缩色条所占的大小

有没有一种简单的方法可以让我的情节占用更多的空间,而色条占用更少的空间?有没有一种简单的方法可以让色条同时出现在底部

代码如下

plt.clf()
my_cmap = cm.get_cmap('YlOrRd')


cs = map.contourf(x,y,bj,levels = Y,cmap=my_cmap,locator=mpl.ticker.LogLocator())


norm = mpl.colors.BoundaryNorm(bounds, my_cmap.N)
    cb1 = plt.colorbar(cmap=my_cmap, 
                norm=norm,
                boundaries=bounds,
                extend='both',
                orientation="horizontal",
                ticks=bounds,
                shrink = 0.35)
    cb1.set_label('Increase in Black Carbon')
    bj = -bj
    ymap = cm.get_cmap('PuBu')


    cs = map.contourf(x,y,bj,levels = Y,cmap=ymap,locator=mpl.ticker.LogLocator())

    # set colourbar with location and size, with labels.
    norm = mpl.colors.BoundaryNorm(bounds,ymap.N)
    cb2 = plt.colorbar(cmap=my_cmap, 
                norm=norm,
                boundaries=bounds,
                extend='both',
                orientation="horizontal",
                ticks=bounds,
                shrink=0.35)


    cb2.set_label('Decrease in Black Carbon')

    font = {'family' : 'serif',
        'color'  : 'black',
        'weight' : 'bold',
        'size'   : 21,
        }

    #add plot details
    plt.title(r'Black Carbon surface concentrations changes in %s 2006 compared with %s 2006 ($\mu$gm$\^3$)'%(g,d) ,fontdict=font)
    map.drawcoastlines(linewidth=0.75)
    map.drawcountries(linewidth=0.25)
    #show plot
    plt.show()

您的问题的一个最简单的工作示例*以及一些实现您所寻找目标的示例:

import pylab as plt

plt.imshow([[1,2,3],[4,5,6]])

cbar_options = {'extend':'both',
                'orientation':"horizontal",
                'shrink':0.75,
                'fraction':.10,
                'pad':.07}

cb1 = plt.colorbar(**cbar_options)
cb1.set_label('Increase in Black Carbon')

cb2 = plt.colorbar(**cbar_options)
cb2.set_label('Decrease in Black Carbon')

plt.show()

  • 您应该始终尝试发布最少量的开箱即用的代码。您的示例需要大量修改,并且缺少导入和变量
您的问题的一个最简单的工作示例*以及一些实现您所寻找目标的示例:

import pylab as plt

plt.imshow([[1,2,3],[4,5,6]])

cbar_options = {'extend':'both',
                'orientation':"horizontal",
                'shrink':0.75,
                'fraction':.10,
                'pad':.07}

cb1 = plt.colorbar(**cbar_options)
cb1.set_label('Increase in Black Carbon')

cb2 = plt.colorbar(**cbar_options)
cb2.set_label('Decrease in Black Carbon')

plt.show()

  • 您应该始终尝试发布最少量的开箱即用的代码。您的示例需要大量修改,并且缺少导入和变量
欢迎来到StackOverflow!请尝试发布用于生成绘图的代码的最小工作示例。这样你通常会得到更好的回应!欢迎来到StackOverflow!请尝试发布用于生成绘图的代码的最小工作示例。这样你通常会得到更好的回应!使用分数函数是所有必要的(分数函数在matplotlib手册中解释得很差,因此我的雷达忽略了它作为解决问题的潜在帮助),感谢使用分数函数是所有必要的(分数函数在matplotlib手册中解释得很差,因此我的雷达忽略了这一点,作为对该问题的潜在帮助)谢谢