【问题标题】:How do I add two colorbars on the same plot in pyplot (matplotlib)?如何在 pyplot (matplotlib) 的同一个图上添加两个颜色条?
【发布时间】:2013-07-11 14:21:54
【问题描述】:

我想绘制一个子图,例如:

Title 1
Fig1    Fig2    Fig3 

为这 3 个数字 (1,2,3) 提供一个通用颜色条。

Title2
Fig4    Fig5    Fig6

为这 3 个数字 (4,5,6) 提供一个通用颜色条。

如上所述,我还没有找到在同一个图形上添加两个不同颜色条的方法。

【问题讨论】:

    标签: python matplotlib colorbar


    【解决方案1】:

    这有点棘手,但您可以使用公共颜色条共享子图集。

    我引用了一些可能也值得一读的先前答案:

    Matplotlib 2 Subplots, 1 Colorbar

    How can I create a standard colorbar for a series of plots in python

    当然,documentation 用于 matplotlib:

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.axes_grid1 import ImageGrid
    
    # Generate some random data
    data_top = np.random.random((3,10,10)) * 5
    data_bot = np.random.random((3,20,20)) * 10
    
    fig  = plt.figure()
    
    grid_top = ImageGrid(fig, 211, nrows_ncols = (1, 3),
                         cbar_location = "right",                     
                         cbar_mode="single",
                         cbar_pad=.2) 
    grid_bot = ImageGrid(fig, 212, nrows_ncols = (1, 3),
                         cbar_location = "right",                     
                         cbar_mode="single",
                         cbar_pad=.2) 
    
    for n in xrange(3):
        im1 = grid_top[n].imshow(data_top[n], 
                                interpolation='nearest', vmin=0, vmax=5)
    
        im2 = grid_bot[n].imshow(data_bot[n], cmap=plt.get_cmap('bone'), 
                                 interpolation='nearest', vmin=0, vmax=10)
    
    
    grid_top.cbar_axes[0].colorbar(im1)
    grid_bot.cbar_axes[0].colorbar(im2)
    
    plt.show()
    

    【讨论】:

    • 感谢您的帮助。它几乎可以工作..我使用底图来绘制正交投影。所以,我必须定义 m=Basemap(projection='ortho',lon_0=lon_0,lat_0=lat_0,resolution='l',\llcrnrx=0.,llcrnry=0.,urcrnrx=m1.urcrnrx/2., urcrnry=m1.urcrnry/2.) 然后我调用 m.pcolor 来绘制我的数字。但是如果我尝试 im1 =grid_top[n].m.pcolor,它不起作用。另外,如何在每个数字上方添加标题并删除地块周围的所有数字?
    • @user2050187 很高兴它有点帮助。如果您将问题分解成我们可以单独回答的单个部分,StackOverflow 会更好地工作。如果您尽可能多地陈述信息(即底图和极坐标图),这也会有所帮助,因为它可能会对答案产生影响。删除数字并添加通用标题是本网站已回答的问题,例如stackoverflow.com/questions/2176424/…stackoverflow.com/questions/5812169/…。记得接受您的问题的答案!
    猜你喜欢
    • 2016-01-02
    • 2014-04-03
    • 1970-01-01
    • 2021-12-28
    • 2021-04-20
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多