在子图中绘制奇数个numpy数组

时间:2016-10-27 12:49:04

标签: numpy matplotlib ipython

我必须想象初步处理结果,它只存在于numpy ndarrays中。 为此,我使用来自matplotlib和plt + imshow的pyplot(subplots)。

fig, ((mb_arr, mk_arr),(k10_b, k10_l)) = plt.subplots(3, 2, figsize=(16, 12))
mb_arr.imshow(mb_2014_array, cmap='gray', interpolation='nearest')
mk_arr.imshow(mk_2014_array, cmap='gray', interpolation='nearest')
k10_b.imshow(k10_build_array, cmap='gray', interpolation='nearest')
k10_l.imshow(k10_lake_array, cmap='gray', interpolation='nearest')
k10_f.imshow(k10_forest_array, cmap='gray', interpolation='nearest');

但是,我坚持使用五分之四的结果,因为我无法在子图的设置中打印出第五个数组。下面是我目前使用的代码,这里的错误是:

--> fig, ((mb_arr, mk_arr),(k10_b, k10_l), (k10_f, )) = plt.subplots(3, 2, figsize=(16, 12))

ValueError: too many values to unpack

我如何指定3 x 2网格中的最后一行只包含一个元素?

1 个答案:

答案 0 :(得分:1)

我使用了http://www.python-course.eu/matplotlib_multiple_figures.php

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 1, 1000)
plt.figure()
for i in range(1, 5):
    plt.subplot(3,2,i)
    plt.plot(np.sin(x))
plt.subplot(3,2,(5,6))
plt.plot(np.sin(x))
plt.show()

以及imshowcmap以及interpolation

import matplotlib.pyplot as plt
import numpy as np
np.random.seed(2)
x = np.random.randint(0, 255, [10, 20])
fig = plt.figure()
for i in range(1, 5):
    plt.subplot(3,2,i)
    plt.imshow(x, cmap='gray', interpolation='nearest')
plt.subplot(3,2,(5,6))
plt.imshow(x, cmap='gray', interpolation='nearest')
plt.show()