fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))
时间: 2023-07-08 21:42:38 浏览: 175
这行代码用于创建一个包含两个子图的图像,并将它们赋值给变量 `ax1` 和 `ax2`。具体来说,这个函数会返回一个包含两个元素的元组,第一个元素是一个 Figure 对象,代表整个图像,第二个元素是一个包含两个 AxesSubplot 对象的数组,每个对象代表一个子图。
这个函数的参数 `1, 2` 表示要创建一个 1 行 2 列的子图网格,也就是说,这个图像包含两个子图,一个放在第一列,一个放在第二列。`figsize=(10, 5)` 表示这个图像的大小为 10 英寸宽,5 英寸高。
因此,接下来可以使用 `ax1` 和 `ax2` 来分别操作第一个子图和第二个子图,例如:
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))
ax1.plot(x, y1)
ax1.set_title('sin(x)')
ax2.plot(x, y2)
ax2.set_title('cos(x)')
plt.show()
```
这段代码会画出一个包含两个子图的图像,左边的子图是 sin(x) 的图像,右边的子图是 cos(x) 的图像。每个子图都有一个标题。
相关问题
fig, ax1 = plt.subplots(
fig, ax1 = plt.subplots()是用于创建一个包含一个子图的Figure对象和一个Axes对象的函数[^1]。其中,Figure对象代表整个图形窗口,而Axes对象则代表一个具体的绘图区域。
下面是一个示例,演示了如何使用fig, ax1 = plt.subplots()创建一个包含两个子图的图形窗口,并在每个子图中绘制不同的数据[^2]:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建图形窗口和子图
fig, ax1 = plt.subplots()
# 在第一个子图中绘制数据
ax1.plot(x, y1, 'b', lw=1.5, label='1st')
ax1.plot(x, y1, 'ro')
ax1.grid(True)
ax1.legend(loc=0)
ax1.set_xlabel('index')
ax1.set_ylabel('value 1st')
ax1.set_title('A Simplot plot')
# 创建第二个子图
ax2 = ax1.twinx()
# 在第二个子图中绘制数据
ax2.plot(x, y2, 'g', lw=1.5, label='2nd')
ax2.plot(x, y2, 'ro')
ax2.legend(loc=0)
ax2.set_ylabel('value 2nd')
# 显示图形
plt.show()
```
这段代码会创建一个包含两个子图的图形窗口,其中第一个子图绘制了y1的数据,第二个子图绘制了y2的数据。每个子图都有自己的y轴,但共享x轴。在绘制完数据后,使用plt.show()函数显示图形。
fig, ax1 = plt.subplots去掉边框
要去掉边框,可以通过设置ax1的spines属性来实现。可以使用下面这行代码将ax1的边框设置为无:
ax1.spines['top'].set_visible(False)
ax1.spines['bottom'].set_visible(False)
ax1.spines['left'].set_visible(False)
ax1.spines['right'].set_visible(False)
这样就可以去掉ax1的边框了。
阅读全文