需求:绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:
(1)正弦曲线的样式:红色、线宽为1.0;
(2)余弦曲线的样式:蓝色、线宽为1.0,透明度为0.5;
(3)x轴的刻度标签为“-π”、“-π/2”、“0”、“π/2”、“π”;
(4)在x=1、y=np.cos(1)的位置添加指向型注释文本;
(5)为正弦曲线和余弦曲线封闭起来的区域填充绿色,透明度为0.25。
最终的效果见运行结果图示。
部分代码如下:
导入模块
import numpy as np
import matplotlib.pyplot as plt
创建画布,在画布上添加绘图区域
fig = plt.figure()
ax = fig.add_subplot(111)
准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
绘制折线
ax.plot(x, y_cos, color='blue', linewidth=1.0, alpha=0.5, label='COS')
ax.plot(x, y_sin, color='red', linewidth=1.0, label='SIN')
图表元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)
添加图例 (并放在左上角的位置)
ax.legend(loc='upper left')
设置x、y轴刻度标签
(x轴的刻度标签为“-π”、“-π/2”、“0”、“π/2”、“π”,y轴刻度标签为1.0, 0.5, 0.0, -0.5, -1.0)
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], ['-π', '-π/2', '0', 'π/2', 'π'])
ax.set_yticks([1.0, 0.5, 0.0, -0.5, -1.0])
添加图表标题
ax.set_title("Cos & Sin")
添加网格(宽度为0.5)
ax.grid(linewidth=0.5)
添加指向型注释文本(在x=1、y=np.cos(1)的位置添加指向型注释文本)
ax.annotate("cos(1)", xy=(1,np.cos(1)),xytext=(1.2,0.8),arrowprops={'arrowstyle':'->'})
图表样式美化(为正弦曲线和余弦曲线封闭起来的区域填充绿色,透明度为0.25)
ax.fill_between(x, y_sin, y_cos, where=y_sin <= y_cos, facecolor='green', alpha=0.25)
展示图表
plt.show()
完整代码如下:
#导入模块
import numpy as np
import matplotlib.pyplot as plt
# 创建画布
fig = plt.figure()
# 在画布上添加绘图区域
ax = fig.add_subplot(111)
#准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
#绘制折线
ax.plot(x, y_cos, color='blue', linewidth=1.0, alpha=0.5, label='COS')
ax.plot(x, y_sin, color='red', linewidth=1.0, label='SIN')
#图表元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)
#添加图例
ax.legend(loc='upper left')
# 设置x、y轴刻度标签
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], ['-π', '-π/2', '0', 'π/2', 'π'])
ax.set_yticks([1.0, 0.5, 0.0, -0.5, -1.0])
#添加图表标题
ax.set_title("Cos & Sin")
#添加网格
ax.grid(linewidth=0.5)
#添加指向型注释文本
ax.annotate("cos(1)", xy=(1,np.cos(1)),xytext=(1.2,0.8),arrowprops={'arrowstyle':'->'})
# 图表样式美化(填充颜色)
ax.fill_between(x, y_sin, y_cos, where=y_sin <= y_cos, facecolor='green', alpha=0.25)
#展示图表
plt.show()