問題:我想在三個維度空間上繪制兩個變數條件函式 f(x,y),這是我的代碼
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 10, 200)
y = np.linspace(0, 10, 200)
if (0<y**2) == True and (y**2<x) == True:
z = 3/4
elif (y == 0) == True or (0<=x<=y**2) == True:
z = 0
plt.plot(x,y,z)
我在 Google Colab 上鍵入此代碼,它在第 3 行向我發送了一個錯誤,如下所示
具有多個元素的陣列的真值是不明確的。使用 a.any() 或 a.all()
uj5u.com熱心網友回復:
的結果0 < y**2是一個布爾陣列,您將它與單個值 ( True) 進行比較;這就是錯誤的來源。
在處理這樣的條件值時,最好使用帶有 NumPy的
from matplotlib import pyplot as plt
import numpy as np
x = np.linspace(0, 10, 200)
y = np.linspace(0, 10, 200)
z = np.zeros(200)
z[(0 < y ** 2) & (y ** 2 < x)] = 3 / 4
fig = plt.figure()
ax = fig.add_subplot(projection="3d")
ax.plot(x, y, z)
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/421599.html
標籤:
