绘制一个同时包含正余弦曲线的图表

1.导入matplotlib模块

import numpy as np
import matplotlib.pyplot as plt

2.导入正余弦函数所需的坐标数据

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)  
y_cos, y_sin = np.cos(x), np.sin(x)

3.创建画布,添加绘图区域

fig = plt.figure()
ax = fig.add_subplot(111)

4.开始绘制

#正弦曲线,linewidth是线宽
ax.plot(x, y_sin,'r', linewidth=1., label='Sin')
#余弦曲线,alpha为透明度
ax.plot(x, y_cos,'b', linewidth=1., alpha=0.7, label='Cos')

5.添加图表标题

ax.set_title("正余弦图表")

6.添加x轴和Y轴的刻度标签

ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
           [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])
ax.set_yticks([-1., -0.5, 0., 0.5, 1.])
 
#在字符串前加r,意味该字符串将被视为原始字符串,所有转义字符都会被忽略

7.调整图例位置,显示网格

ax.legend(loc='upper left')
#loc用于粗略调整图例在整个绘图区域的位置
ax.grid(b=True,#b 表示是否显示网格
        axis='both')
# axis表示显示哪个方向的网格,默认就是both,也支持x和y

8.使用annotate()添加指向性注释文本

ax.annotate("cos(1)",# 引号内输入注释文本的内容
            xy=(1, np.cos(1)), # 表示被注释的点的位置,接收的是元组(x,y)
            xytext=(np.pi/2.5, np.cos(0.7)), # 表示注释文本所在的坐标位置,接收的同上
            arrowprops={'arrowstyle':'->'}) # 表示指示箭头的属性字典

9.使用fill_between()填充两条水平曲线之间的区域

# color和alpha为**kwargs参数
 
ax.fill_between(x, #x轴坐标的序列
                y_cos, #第一条曲线的y轴坐标
                y_sin, #第二条曲线的y轴坐标
                y_cos > y_sin, #要填充区域的条件
                color='g', #填充区域的颜色
                alpha=0.5) #填充颜色的透明度

10.展示图表

plt.show()

完整代码如下

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)  
y_cos, y_sin = np.cos(x), np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y_sin,'r', linewidth=1., label='Sin')
ax.plot(x, y_cos,'b', linewidth=1., alpha=0.7, label='Cos')
ax.set_title("正余弦图表")
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
           [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])
ax.set_yticks([-1., -0.5, 0., 0.5, 1.])
ax.legend(loc='upper left')
ax.grid(b=True,
        axis='both')
ax.annotate("cos(1)",
            xy=(1, np.cos(1)), 
            xytext=(np.pi/2.5, np.cos(0.7)), 
            arrowprops={'arrowstyle':'->'}) 
ax.fill_between(x, y_cos,y_sin, y_cos > y_sin,color='g', alpha=0.3) 
plt.show()

运行结果如图所示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值