如何在pyplot(matplotlib)中的同一个图上添加两个颜色条?

时间:2013-07-11 14:21:54

标签: python matplotlib colorbar

我想绘制一个子图,如:

Title 1
Fig1    Fig2    Fig3 

使用这3个数字(1,2,3)的常用颜色条。

Title2
Fig4    Fig5    Fig6

这3个数字(4,5,6)有一个共同的颜色条。

我还没有找到在上图中添加两个不同颜色条的方法。

1 个答案:

答案 0 :(得分:4)

这有点棘手,但你可以用一个共同的颜色条分享一组子图。

enter image description here

我已经吸取了一些以前可能值得一读的答案:

Matplotlib 2 Subplots, 1 Colorbar

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

当然,matplotlib的documentation

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()