为什么是空白def draw(res, x): # 生成 x 和 y 的数据 x = x y1 = [] y2 = [] y3 = [] y4 = [] y5 = [] for y in res: y1.append(-1*y[0]) y2.append(y[1]) y3.append(y[2]) y4.append(y[3]) y5.append(y[4]) # 创建一个画布 fig, ax = plt.subplots() # 绘制连接散点图 plt.subplot(231), ax.plot(x, y1, 'r-', label='W') plt.subplot(232), ax.plot(x, y2, 'b-', label='i') plt.subplot(233), ax.plot(x, y3, 'g-', label='K') plt.subplot(234), ax.plot(x, y4, 'g-', label='K') plt.subplot(235), ax.plot(x, y5, 'g-', label='K') # 设置图像标题和轴标签 ax.set_title('Scatter Plot with Lines') ax.set_xlabel('X-axis') ax.set_ylabel('Y-axis') plt.show()
时间: 2023-12-04 07:05:05 浏览: 74
这段代码中,绘图命令存在问题。 `plt.subplot()` 的返回值是 AxesSubplot 对象,与 `ax.plot()` 函数一起使用,可以将曲线添加到特定的子图中。因此,需要将绘图命令与 `plt.subplot()` 函数分开,并将其分配给一个变量,然后使用该变量来添加曲线。此外,这段代码中缺少数据的赋值,因此需要在调用函数时传入数据。下面是修改后的代码示例:
```
import matplotlib.pyplot as plt
import numpy as np
def draw(res, x):
# 生成 x 和 y 的数据
y1 = [-1*y[0] for y in res]
y2 = [y[1] for y in res]
y3 = [y[2] for y in res]
y4 = [y[3] for y in res]
y5 = [y[4] for y in res]
# 创建一个画布
fig, ax = plt.subplots()
# 绘制连接散点图
ax1 = plt.subplot(231)
ax1.plot(x, y1, 'r-', label='W')
ax2 = plt.subplot(232)
ax2.plot(x, y2, 'b-', label='i')
ax3 = plt.subplot(233)
ax3.plot(x, y3, 'g-', label='K')
ax4 = plt.subplot(234)
ax4.plot(x, y4, 'y-', label='A')
ax5 = plt.subplot(235)
ax5.plot(x, y5, 'm-', label='B')
# 设置图像标题和轴标签
ax.set_title('Scatter Plot with Lines')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
# 添加图例
ax.legend()
# 显示图像
plt.show()
# 生成测试数据
x = np.arange(0, 10, 0.1)
res = np.random.randn(len(x), 5)
# 绘制图像
draw(res, x)
```
这段代码将生成包含五个子图的图形,并将其显示出来。
阅读全文