使用matplotlib在同一张图片中分别绘制正弦函数,余弦函数,反余弦函数和反正弦函数
时间: 2023-06-18 19:02:23 浏览: 64
可以使用以下代码:
```python
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-1, 1, 1000)
y_sin = np.sin(x)
y_cos = np.cos(x)
y_arccos = np.arccos(x)
y_arcsin = np.arcsin(x)
fig, ax = plt.subplots()
ax.plot(x, y_sin, label='sin')
ax.plot(x, y_cos, label='cos')
ax.plot(x, y_arccos, label='arccos')
ax.plot(x, y_arcsin, label='arcsin')
ax.legend()
plt.show()
```
这段代码会生成一个包含四条曲线的图像,分别对应正弦函数、余弦函数、反余弦函数和反正弦函数。可以根据需要修改x的范围和曲线的颜色、线型等参数。
相关问题
绘制-pi/2到pi/2之间正弦函数曲线和-1到1之间反正弦函数曲线
好的,我可以帮你绘制这两个函数的图像。首先,我们可以使用 Python 中的 Matplotlib 库来进行绘图。
绘制正弦函数曲线:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成 x 坐标轴数据
x = np.linspace(-np.pi/2, np.pi/2, 1000)
# 计算 y 坐标轴数据
y = np.sin(x)
# 绘制图像
plt.plot(x, y)
# 添加标题和坐标轴标签
plt.title("Sin Function")
plt.xlabel("x")
plt.ylabel("y")
# 显示图像
plt.show()
```
绘制反正弦函数曲线:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成 x 坐标轴数据
x = np.linspace(-1, 1, 1000)
# 计算 y 坐标轴数据
y = np.arcsin(x)
# 绘制图像
plt.plot(x, y)
# 添加标题和坐标轴标签
plt.title("Arcsin Function")
plt.xlabel("x")
plt.ylabel("y")
# 显示图像
plt.show()
```
这样就可以得到两个函数的图像了。希望能够帮到你!
以下面代码为基础写RNN预测正弦值的代码,绘图真实值和预测值
好的,以下是基于给出代码完成预测正弦函数的RNN代码:
```
import numpy as np
import math
import tensorflow as tf
import matplotlib.pyplot as plt
# 生成数据
dataset = []
for data in np.arange(0, 3, .01):
data = math.sin(data * math.pi)
dataset.append(data)
dataset = np.array(dataset)
dataset = dataset.astype('float32')
max_value = np.max(dataset)
min_value = np.min(dataset)
scalar = max_value - min_value
dataset = list(map(lambda x: x / scalar, dataset))
# 创建数据集
look_back = 5
trainX, trainY = [], []
for i in range(len(dataset) - look_back):
trainX.append(dataset[i:i+look_back])
trainY.append(dataset[i+look_back])
trainX = np.array(trainX)
trainY = np.array(trainY)
# 转换为张量
trainX = tf.convert_to_tensor(trainX)
trainY = tf.convert_to_tensor(trainY)
# 定义模型
model = tf.keras.Sequential([
tf.keras.layers.SimpleRNN(32, input_shape=(look_back, 1)),
tf.keras.layers.Dense(1)
])
# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(),
loss=tf.keras.losses.MeanSquaredError())
# 训练模型
history = model.fit(trainX, trainY, epochs=100, batch_size=16, verbose=2)
# 预测结果
predicted = []
for i in range(len(dataset) - look_back):
x = np.array(dataset[i:i+look_back])
x = np.reshape(x, (1, look_back, 1))
y = model.predict(x)
predicted.append(y[0][0])
# 反归一化
predicted = np.array(predicted)
predicted = predicted * scalar
# 绘图
plt.plot(dataset[look_back:], label='True Data')
plt.plot(predicted, label='Predicted Data')
plt.legend()
plt.show()
```
在这个 RNN 模型中,我们使用 SimpleRNN 层来学习时间序列数据的特征,然后使用全连接层来进行预测。训练过程中我们使用了 Adam 优化器和均方误差损失函数。最后,我们使用模型对测试集进行预测,并将预测结果和真实值绘制在同一张图上,以便进行比较。