将matplotlib的阴影值网格变成一系列条形图,每行一个?

使用 matlotlib,我可以创建如下所示的图形:

http://img4.mukewang.com/627b596b0001412b11491285.jpg

在这里,每一行由一系列从 0 到 0.6 的数字组成。左侧轴文本表示每行中的最大值。底部轴文本表示列索引。

实际网格的代码基本上涉及这一行:

    im = ax[r,c].imshow(info_to_use, vmin=0, vmax=0.6, cmap='gray')

其中是 row和 columnax[r,c]的当前子图轴,并且是一个 numpy 形状数组,其值介于 0 和 0.6 之间。rcinfo_to_use(num_rows, num_cols)

我想知道是否有一种方法可以转换上面的代码,以便它显示条形图,每行一个?像这个手绘图:

http://img1.mukewang.com/627b59770001ecf311651242.jpg

(与之前的图相比,我手绘图中的列数不一样。)我知道如果将其嵌入到这里的第一个图中,这将导致非常难以阅读的图。对于行数较少的绘图,我会使用它,这将使条形更易于阅读。

但我不确定如何从这些跳转到每行的条形图。或者至少可以反映它的东西,例如,不是将整个单元格着色为灰色,而是根据vmax?



一只斗牛犬
浏览 159回答 1
1回答

牛魔王的故事

import numpy as npfrom matplotlib import pyplot as plta = np.random.rand(10,20)*.6在一个循环中,为二维数组中的每一行调用 plt.subplot 然后 plt.bar 。for i, thing in enumerate(a,1):    plt.subplot(a.shape[0],1,i)    plt.bar(range(a.shape[1]),thing)plt.show()plt.close()或者,创建所有子图;然后在一个循环中用每个轴制作一个条形图。fig, axes = plt.subplots(a.shape[0],1,sharex=True)for ax, data in zip(axes, a):    ax.bar(range(a.shape[1]), data)plt.show()plt.close()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python