绘制一个包含正弦曲线和余弦曲线的图表,并对图表辅助元素和样式进行相关的定制

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

# 1.准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)  
y_cos, y_sin = np.cos(x), np.sin(x)

2.  绘制正,余弦函数曲线

# 2.绘制正,余弦函数曲线
plt.plot(x,y_cos,label='cos',color=(106/255,76/255,254/255),alpha=0.6,lw=1.0)
plt.plot(x,y_sin,label='sin',color='r',alpha=0.6,lw=1.0)

主要参数:

label:图例标签

color:颜色(这里的y_cos函数,运用了RGB模式表示颜色)

alpha:颜色透明度

lw:线条宽度

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

# 3.图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)
#描绘图表标题
plt.title('Cos & sin',family='cursive',stretch=250)#fontweight=550,stretch=900,style='italic'
#描绘刻度标签
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$'],family='monospace')
plt.yticks([-1.0,-0.5,0,0.5,1],[r'$-0.1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1.0$'],family='monospac')
#描绘图例
plt.legend(loc='upper left')
#描绘网格
plt.grid(True, which='major',axis='both',lw=0.3)
#描绘指向型注释文本
plt.annotate('cos(1)',xytext=(1.15,0.78),xy=(1.0,0.55),
             arrowprops=dict(arrowstyle='->'),family='monospac')#,bbox={'edgecolor':'k','facecolor':'y','alpha':0.2},ha='center',va='center'

注意:这里的grid函数,由于matplotlib版本高于3.7 ,因此关键字“ b ”已停止使用

解决办法将 grid(b=False) 替换为 grid(False) 以修复

 主要参数:

family:字体类别

stretch:字体拉伸

loc:粗略表示图例位置

axis:表示显示哪个方向的网格

xytsxt:注释文本的坐标位置(我站在哪里?)

xy:箭头所要指向的坐标位置(我指向哪里?)

arrowprops:表示箭头的属性字典(用于接收一个包含若干个键值对的字典)

arrowstyle:箭头的类型

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

# 4.图表样式美化(填充颜色)
plt.fill_between(x,y_cos,y_sin,where=y_cos > y_sin,color='green',alpha=0.25)

主要参数: 

 where:表示要填充区域的条件

5.运行结果

plt.show()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值