n = 0 for i in data: WY = i[0:200] ZH = i[200:400] # print(len(WY),len(ZH)) plt.plot(WY[0: 100], ZH[0: 100], color=seismic(5 / 5.0), lw=3) plt.plot(WY[100: 200], ZH[100: 200], color=seismic(0 / 5.0), lw=3) plt.xticks([]) plt.yticks([]) ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) ax.spines['left'].set_visible(False) ax.spines['bottom'].set_visible(False) Y_ALL = [] Y_ALL.extend(list(map(float, ZH))) Y_MAX, Y_MIN = np.max(Y_ALL), np.min(Y_ALL) ax.set_ylim(np.min([0, Y_MIN - (Y_MAX - Y_MIN) * 0.1]), Y_MAX + (Y_MAX - Y_MIN) * 0.1) plt.savefig("G:/功图/0/" + cond[:-4] + '/' + str(n), dpi=50) # plt.savefig(newpath + "GT/" + cond + "/" + data['IMGNAME'][i], dpi=50) plt.clf() # plt.show() n = n + 1这段代码是一段绘图代码,当i中存在空值时绘图会中断,怎样将i中存在空值的整条i删除或跳过
时间: 2024-03-01 10:50:05 浏览: 63
可以使用 Python 中的 continue 语句来跳过包含空值的数据。在每次循环迭代时,检查该数据是否包含空值,如果包含,则使用 continue 跳过该迭代,继续执行下一次迭代。以下是修改后的代码示例:
```
n = 0
for i in data:
if np.isnan(i).any(): # 检查数据是否包含 NaN 值
continue # 如果包含,则跳过该迭代
WY = i[0:200]
ZH = i[200:400]
plt.plot(WY[0: 100], ZH[0: 100], color=seismic(5 / 5.0), lw=3)
plt.plot(WY[100: 200], ZH[100: 200], color=seismic(0 / 5.0), lw=3)
plt.xticks([])
plt.yticks([])
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)
Y_ALL = []
Y_ALL.extend(list(map(float, ZH)))
Y_MAX, Y_MIN = np.max(Y_ALL), np.min(Y_ALL)
ax.set_ylim(np.min([0, Y_MIN - (Y_MAX - Y_MIN) * 0.1]), Y_MAX + (Y_MAX - Y_MIN) * 0.1)
plt.savefig("G:/功图/0/" + cond[:-4] + '/' + str(n), dpi=50)
plt.clf()
n = n + 1
```
在上面的代码中,我们使用了 `np.isnan()` 函数来检查数据是否包含 NaN 值。如果包含,则使用 `continue` 跳过该迭代。
阅读全文