plt.imshow()两幅图像放在一个画布上
时间: 2023-06-11 18:09:20 浏览: 120
要将两幅图像放在一个画布上,你可以使用 Matplotlib 库中的 subplot() 函数。该函数可以将画布分成多个子图,每个子图可以显示一幅图像。
下面是一个简单的例子,其中我们将两幅图像放在一个 1x2 的网格中:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成两幅示例图像
image1 = np.random.rand(100, 100)
image2 = np.random.rand(100, 100)
# 创建画布和子图
fig, axes = plt.subplots(nrows=1, ncols=2)
# 在第一个子图中显示第一幅图像
axes[0].imshow(image1)
# 在第二个子图中显示第二幅图像
axes[1].imshow(image2)
# 显示图像
plt.show()
```
在这个例子中,我们首先生成了两幅随机图像。然后,我们使用 `subplots()` 函数创建了一个包含 1 行和 2 列子图的画布,并将返回值存储在 `fig` 和 `axes` 变量中。接下来,我们使用 `imshow()` 函数在第一个子图中显示第一幅图像,在第二个子图中显示第二幅图像。最后,我们调用 `show()` 函数显示图像。
相关问题
使plt.imshow的图像和plt.subplots在同一个画布
可以使用plt.subplots来创建一个包含多个子图的画布,并在其中一个子图中显示图像。以下是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一个包含1行2列的子图画布
fig, ax = plt.subplots(nrows=1, ncols=2)
# 在第一个子图中绘制图像
img = np.random.rand(10, 10)
ax[0].imshow(img)
# 在第二个子图中绘制其他图形
x = np.linspace(-np.pi, np.pi, 100)
y = np.sin(x)
ax[1].plot(x, y)
# 显示画布
plt.show()
```
在这个示例中,我们使用`plt.subplots`创建一个包含1行2列的子图画布。然后,我们在第一个子图中使用`ax[0]`来显示一个随机图像,同时在第二个子图中绘制了一个正弦曲线。最后,我们使用`plt.show()`来显示整个画布。
plt.imshow的图像和plt.subplots()不在一个画布
是的,plt.imshow()和plt.subplots()默认创建了不同的画布。如果您希望它们在同一个画布中显示,可以使用plt.subplot()或plt.figure()来创建一个新的画布,并在其中绘制图像。
下面是一个示例代码:
```
import matplotlib.pyplot as plt
import numpy as np
# 创建一个新的画布
fig = plt.figure(figsize=(8, 4))
# 在画布中创建两个子图
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
# 在第一个子图中绘制图像
img = np.random.rand(10, 10)
ax1.imshow(img)
# 在第二个子图中绘制一个简单的曲线
x = np.arange(0, 10, 0.1)
y = np.sin(x)
ax2.plot(x, y)
# 显示图形
plt.show()
```
在这个例子中,我们使用plt.figure()来创建一个新的画布,然后使用fig.add_subplot()在画布中创建两个子图。在第一个子图中,我们使用ax1.imshow()来显示一个随机生成的图像。在第二个子图中,我们使用ax2.plot()来绘制一个简单的正弦曲线。最后,我们使用plt.show()来显示图形。