绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下: (1) 正弦曲线的样式:红色、线宽为1.0; (2) 余弦曲线的样式:蓝色、线宽为1.0,透明度为0.5; (3) x轴的刻度标签为“-π”
时间: 2024-11-05 20:28:54 浏览: 4
要在Python中使用matplotlib库绘制这样的图表,你可以按照以下步骤操作:
```python
import matplotlib.pyplot as plt
import numpy as np
# 设置x轴范围和步长
x = np.linspace(-np.pi, np.pi, 400) # 创建从-π到π的等差数组
# 计算正弦和余弦值
sin_y = np.sin(x)
cos_y = np.cos(x)
# 绘制正弦曲线
plt.plot(x, sin_y, color='red', linewidth=1.0, label='正弦')
# 绘制余弦曲线,透明度为0.5
plt.plot(x, cos_y, color='blue', linewidth=1.0, alpha=0.5, label='余弦 (半透明)')
# 设置x轴刻度标签
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], labels=['-π', '-π/2', '0', 'π/2', 'π'])
# 添加图例和标题
plt.legend()
plt.title('正弦和余弦函数图形')
# 显示图表
plt.show()
```
这个代码会生成一个显示了正弦和余弦曲线的图表,正弦曲线是红色实线,余弦曲线是蓝色透明线。x轴的刻度标签如要求所示。
相关问题
绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下: (1)正弦曲线的样式:红色,线宽1.0 (2)余弦曲线的样式:蓝色,线宽1.0,透明度0.3 (3)x轴的刻度标签为 r’$-pi$’,r’$-pi/2$’,0,r’$pi/2$’,r’$pi$’ (4) 在x=1,y=np.cos(1)的位置添加指向型注释文本 (5)填充|x|<0.5或cosx>0.5的区域为绿色,透明度为0.25
以下是绘制该图表的Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成x轴数据
x = np.linspace(-np.pi, np.pi, 1000)
# 生成正弦曲线和余弦曲线数据
y_sin = np.sin(x)
y_cos = np.cos(x)
# 绘制图表
fig, ax = plt.subplots(figsize=(8, 5))
# 绘制正弦曲线
ax.plot(x, y_sin, color='red', linewidth=1.0)
# 绘制余弦曲线
ax.plot(x, y_cos, color='blue', linewidth=1.0, alpha=0.3)
# 添加x轴刻度标签
xticks = [-np.pi, -np.pi/2, 0, np.pi/2, np.pi]
xticklabels = [r'$-\pi$', r'$-\pi/2$', '0', r'$\pi/2$', r'$\pi$']
ax.set_xticks(xticks)
ax.set_xticklabels(xticklabels)
# 添加注释文本
ax.annotate('cos(1)', xy=(1, np.cos(1)), xytext=(2, 0),
arrowprops=dict(facecolor='black', shrink=0.05))
# 填充特定区域
mask = np.logical_or(np.abs(x) < 0.5, y_cos > 0.5)
ax.fill_between(x, -1, 1, where=mask, facecolor='green', alpha=0.25)
# 显示图表
plt.show()
```
运行代码后,会得到如下的图表:
![image.png](attachment:image.png)
编写程序。绘制一个包含正弦曲线和余弦曲线的图表,要求 正弦曲线的样式:红色、线宽为1.0;余弦曲线的样式:蓝色、线宽为1.0,透明度为0.5;x轴的刻度标签为“-π”、 “-π/2”、 “0”、 “π/2”、 “-π”;填充余弦值大于正弦值的区域为绿色,透明度为0.25。
要创建这样一个图表,我们可以使用Python的matplotlib库。以下是一个示例代码片段:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import BrokenBarhCollection
# 定义x轴的特殊刻度标签
x_labels = [-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi]
# 创建x轴范围和步长
x = np.linspace(-np.pi, np.pi, 400)
sin_data = np.sin(x)
cos_data = np.cos(x)
# 绘制正弦和余弦曲线
plt.plot(x, sin_data, color='red', linewidth=1.0, label='Sine')
plt.plot(x, cos_data, color='blue', linewidth=1.0, alpha=0.5, label='Cosine')
# 计算并填充正弦小于余弦的部分
filled_area = np.where(sin_data < cos_data, cos_data - sin_data, 0)
face_colors = ['none'] * len(x) + ['green', alpha=0.25] + ['none'] * (len(x) - 2)
# 创建垂直条形图集合
bar_segments = [[i, i+1, j, j] for i, j in enumerate(filled_area)]
collection = BrokenBarhCollection(bar_segments, facecolors=face_colors)
# 添加到图中
plt.gca().add_collection(collection)
# 设置x轴刻度标签
plt.xticks(np.arange(0, len(x_labels), 2), x_labels)
# 添加标题和图例
plt.title('Sinusoid vs Cosine with Filled Area')
plt.xlabel('x (radians)')
plt.ylabel('y')
plt.legend()
# 显示图形
plt.show()
```
这段代码首先定义了x轴的特殊刻度标签,然后生成了正弦和余弦曲线的数据。接着,通过比较正弦和余弦值来确定填充部分,并用`BrokenBarhCollection`来创建垂直条形图表示填充区域。最后设置了x轴刻度标签和图例,展示了最终的图表。
阅读全文