簡體   English   中英

如何在 Python 中 plot function 的圖表?

[英]How can I plot a graph of a function in Python?

我正在嘗試繪制此 function

=1/4cos**2(θA0 − θB0) + cos**2(θA0 − θB1)+cos**2(θA1 − θB0) + sin**2(θA1 − θB1)

到目前為止,這是我的代碼:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

b = np.arange(0, 1, 0)
d = np.arange(0, 1, 0)

B, D = np.meshgrid(A0, B0)
nu = =1/4cos**2(θA0 − θB0) + cos**2(θA0 − θB1)+cos**2(θA1 − θB0) + sin**2(θA1 − θB1)



fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(A0, B0, nu)
plt.xlabel('A0')
plt.ylabel('B0')
plt.show()

首先,您需要導入數學庫以使用余弦和正弦函數。 因此,您必須定義所有常量並一次保存一個“nu” function 值。

我假設 A0 和 B0 是恆定的,因此您可以在 2D 圖表中表示您的 function。 在這種情況下,代碼是:

import matplotlib.pyplot as plt
import numpy as np
import math

# parameters
a0 = 1
a1 = 2
b0 = 3
b1 = 4
t = np.linspace(-(2 * np.pi), 2 * np.pi, 200)  # theta

# formula
nu = []
for i in range(len(t)):
    nu.append(1/4 * math.cos(t[i]*a0 - t[i]*b0)**2 + math.cos(t[i]*a0 - t[i]*b1)**2 + 
              math.cos(t[i]*a1 - t[i]*b0)**2 + math.sin(t[i]*a1 - t[i]*b1)**2)

plt.figure()
plt.plot(t, nu, color='red', marker='o')
plt.xlabel('a0')
plt.ylabel('b0')
plt.show()

否則,您可以修改 A0 和 B0 類似於 theta 並實現 3D 圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM