使用AxesGrid在正方形中绘制具有不同x和y范围的数据

时间:2019-01-19 12:01:24

标签: python matplotlib

我正在尝试创建一个色图矩阵,并且x和y限制具有不同的范围。我正在尝试使用AxesPlot,因为它具有对单个组的颜色条进行分组的出色功能-在我的情况下,我希望每行都使用颜色条。

我需要的是与此类似的东西: Grid of plots with one colorbar for each line

但是使用正方形图而不是矩形(这意味着每个点应该是矩形而不是正方形)。在我的真实情况下,情况更加严峻,因为限制为xlim = [0,360]和ylim = [0,3.5],因此绘制的内容非常薄。

有可能吗?

以下是制作此示例图的代码:

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import AxesGrid
import numpy as np
fig = plt.figure(figsize=(10, 6))
nrow = 3
ncol = 1
grid = [ None for j in range( nrow ) ]
for j in range(0,nrow):
    plot = nrow*100 + ncol*10 + (j+1)
    grid[j] = AxesGrid(fig, plot,
                    nrows_ncols=(1, 3),
                    axes_pad=0.05,
                    cbar_mode='single',
                  add_all=True,
                    cbar_location='right',
                    cbar_pad=0.1
                    )
    for ax in grid[j]:
        ax.set_axis_off()
        im = ax.imshow(np.random.random((8,16)), vmin=0, vmax=1)
    cbar = ax.cax.colorbar(im)
    cbar = grid[j].cbar_axes[0].colorbar(im)
    cbar.ax.set_yticks(np.arange(0, 1.1, 0.5))
    cbar.ax.set_yticklabels(['low', 'medium', 'high'])
plt.show()

0 个答案:

没有答案