繁体   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