考慮這個簡單的程式來繪制一個函式:
import matplotlib.pyplot as plt
import numpy as np
def f(t):
return t if t < 3 else 10-t
x = np.arange(0.0, 5.0, 0.1)
plt.plot(x, f(x), 'b-')
plt.show()
這會在 f 中產生錯誤,因為 t 是一個 numpy 陣列。這在我只在 f(t) 中回傳 t 時有效:然后我得到一個情節。是否有可能給 plt.plot 一個為每個 x 值顯式呼叫的函式?我之前也嘗試使用 np.fromfunction 來生成 y 值,例如 y = np.fromfunction(f, (50,)) 但隨后 f 也直接用陣列而不是單個值呼叫。盡管檔案說:“通過在每個坐標上執行一個函式來構造一個陣列。” (https://numpy.org/doc/stable/reference/generated/numpy.fromfunction.html#numpy.fromfunction)
uj5u.com熱心網友回復:
嘗試
import matplotlib.pyplot as plt
import numpy as np
def f(t):
return t if t < 3 else 10-t
F = np.vectorize(f)
x = np.arange(0.0, 5.0, 0.1)
plt.plot(x, F(x), 'b-')
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505111.html
