Как добавить две цветные полосы на одном графике в pyplot (matplotlib)?

1

Я хотел бы построить один подзаговор, например:

Title 1
Fig1    Fig2    Fig3 

С общей панелью цветов для этих 3 фигур (1,2,3).

Title2
Fig4    Fig5    Fig6

С общей цветовой полосой для этих 3 фигур (4,5,6).

Я не нашел способ добавить две разные цветные панели на том же рисунке, что и выше.

Теги:
matplotlib
colorbar

1 ответ

4
Лучший ответ

Это немного сложно, но вы можете делиться наборами подзаголовков с общим цветом.

Изображение 174551

Я нарисовал несколько предыдущих анонсов, которые, возможно, тоже стоит прочитать:

Matplotlib 2 подзаголовки, 1 цветная панель

Как создать стандартную панель цветов для серии графиков в python

И, конечно, документация для 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()
  • 0
    Спасибо за эту помощь. Это почти работает .. Я использую базовую карту для построения орфографической проекции. Итак, я должен определить m = Basemap (проекция = 'ortho', lon_0 = lon_0, lat_0 = lat_0, разрешение = 'l', \ llcrnrx = 0., llcrnry = 0., urcrnrx = m1.urcrnrx / 2., urcrnry = m1.urcrnry / 2.) Затем я вызываю m.pcolor для построения своих фигур. Но если я попробую im1 = grid_top [n] .m.pcolor, это не сработает. Кроме того, как я могу добавить заголовок над каждой цифрой и удалить все цифры вокруг графиков?
  • 0
    @ user2050187 Рад, что это немного помогло. StackOverflow работает лучше, если вы разбиваете свои вопросы на отдельные части, на которые мы можем ответить индивидуально. Также полезно, если вы указали как можно больше информации (т.е. базовых карт и полярных графиков), поскольку это может повлиять на ответ. Удаление цифр и добавление общего названия - это вопросы, на которые уже даны ответы на этом сайте, например stackoverflow.com/questions/2176424/… , stackoverflow.com/questions/5812169/… . Не забудьте принять ответ на ваши вопросы!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню