plt.imshow如何在图像上画横线和竖线
时间: 2024-06-14 19:06:46 浏览: 220
plt.imshow函数可以在图像上画横线和竖线。你可以使用plt.axhline函数来画横线,使用plt.axvline函数来画竖线。这两个函数都可以接受参数来指定线的位置和样式。
下面是一个示例代码,演示了如何使用plt.imshow函数在图像上画横线和竖线:
```python
import matplotlib.pyplot as plt
# 读取图像
image = plt.imread('image.jpg')
# 显示图像
plt.imshow(image)
# 画横线
plt.axhline(y=100, color='r', linestyle='--') # 在y=100的位置画一条红色虚线
# 画竖线
plt.axvline(x=200, color='g', linestyle=':') # 在x=200的位置画一条绿色点线
# 显示图像和线
plt.show()
```
在这个示例中,我们首先使用plt.imread函数读取了一张图像,然后使用plt.imshow函数显示了这张图像。接着,我们使用plt.axhline函数在图像上画了一条红色虚线,该线位于y=100的位置。最后,我们使用plt.axvline函数在图像上画了一条绿色点线,该线位于x=200的位置。最后,使用plt.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()来显示图形。
阅读全文