合理运用plot、title、(x,y)ticks、legend、grid、annotate、fill_between函数制作正余弦曲线图

需求:绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:
(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

 1.准备数据

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)#np.linspace用于生成等差数列函数,需要指定起始点、终止点和分隔值总数这三个参数,最终返回间隔类均匀分布的数值序列。通过设置参数endpoint为True来确保数列的结束值被包含在内。
y_cos, y_sin = np.cos(x), np.sin(x)
y = [-1.0,-0.5,0.0,0.5,1.0]

2.绘制折线

plt.plot(x,y_cos,color='b',linewidth=1.0,alpha=0.5)#绘制cos函数
#根据题目要求使用color设置线条颜色,linewidth设置线的宽度,alpha用于设置透明程度
plt.plot(x,y_sin,color='r',linewidth=1.0)#绘制sin函数

3.图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)

plt.title('Cos & Sin')#title函数用于绘制图表标题
#xticks()和yticks函数分别设置或获取x轴和y轴的刻度线位置和刻度标签 

plt.yticks(y) #y轴数值
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',
            r'$0$',r'$\pi/2$',r'$\pi$'])#x轴数值

注解:字符串前面加r,意味着该字符串表达为原始字符串,为保证字符串中的所有字符能以字面的形式显示,数学字符串需要配合“r”使用。

#legend函数设置图例
plt.legend(['COS','SIN'],loc='upper left',shadow=True, fancybox=True)
#设置COS,SIN文本标识,loc控制图例位置,upper left 左上方

shadow参数控制是否在图例后面显示阴影,默认None。

fancybox参数控制是否为图例设置圆角边框,默认None。

#grid函数显示网格
plt.grid(which='major',axis='both')

which:表示显示网格的类型,支持major(显示主要网格线),minor(显示次要网格线),both(既显示主要网格线也显示次要网格线)

axis:表示显示哪个方向的网格,支持both、x、y,默认为both

#annotate函数为图表添加指向型注释文本

   使用方法annotate(s,xy,*args,**kwargs)

plt.annotate("cos(1)",xy=(1,np.cos(1)),xytext=(np.pi/3,0.75),arrowprops=dict(arrowstyle="->",))

1)s注释文本内容 cos(1)

2)xy 被注释的点的坐标位置 接收元组(xy) 此处为1,np.cos(1)

3)xytext 表示注释文本所在的坐标位置,接收元组(xy)此处横坐标Π/3,纵坐标0.75

4)arrowprops 表示指示箭头的属性字典 “->”

# 图表样式美化(填充颜色)

#fill_between函数填充两条水平曲线之间的区域

用法:fill_between(x,y1,y2,where=None,interpolate=False,step=None,data=None,**kwargs)

plt.fill_between(x,y_cos,y_sin, y_sin<y_cos,color='green',alpha=0.25)
1)x轴坐标序列
2)y_cos 第一条曲线y轴坐标
3)y_sin 第二条曲线y轴坐标
4)在第一条曲线大于第二条曲线的区间内,填充绿色,透明度为0.25

注解:where:布尔值,表示要填充区域的条件。y1>y2说明第一条曲线位于第二条曲线上方时填充;y1<y2说明第二条曲线位于第一条曲线上方时填充。

4.完成以上操作后输入plt.show()绘制图形,运行结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值