编写程序,分别采用面向对象和面向函数两种方式绘制正弦曲线和余弦曲线。 提示:利用numpy的linspace()、sin()或cos()函数生成样本数据、正弦值或余弦值。
时间: 2024-09-16 12:06:24 浏览: 112
在Python中,我们可以使用numpy库来创建和绘制正弦和余弦曲线。这里我会提供两个示例,一种是面向对象的方式,另一种是面向函数的方式。
**面向对象的方式(使用类和实例化)**:
```python
import numpy as np
import matplotlib.pyplot as plt
class TrigonometricPlotter:
def __init__(self, func, start=0, end=2*np.pi, num_points=400):
self.start = start
self.end = end
self.num_points = num_points
self.func = func
def plot(self):
x_values = np.linspace(self.start, self.end, self.num_points)
y_values = self.func(x_values)
plt.plot(x_values, y_values)
plt.xlabel('X')
plt.ylabel(f'{self.func.__name__} Curve')
plt.title(f'Drawing {self.func.__name__} Curve')
plt.show()
# 创建正弦和余弦曲线的实例
sine_plotter = TrigonometricPlotter(np.sin)
sine_plotter.plot()
cosine_plotter = TrigonometricPlotter(np.cos)
cosine_plotter.plot()
```
**面向函数的方式(直接定义函数)**:
```python
def draw_trig_curve(func_name, start=0, end=2*np.pi, num_points=400):
import numpy as np
from matplotlib import pyplot as plt
x_values = np.linspace(start, end, num_points)
y_values = eval(f'sin({x_values})') if func_name == 'sin' else np.cos(x_values) # 使用eval()因为在这里func_name代表字符串
plt.plot(x_values, y_values)
plt.xlabel('X')
plt.ylabel(func_name + ' Curve')
plt.title(f'Drawing {func_name} Curve')
plt.show()
# 通过函数调用绘制正弦和余弦曲线
draw_trig_curve('sin')
draw_trig_curve('cos')
```
这两个例子都展示了如何使用numpy生成样本数据并用matplotlib画出正弦和余弦曲线。面向对象的优点在于组织和复用代码,而面向函数则更简洁直接。
阅读全文