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

要求如下:

(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

准备数据

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

np.pi=π 

绘制折线图

plt.plot(x,y_sin,color='red',linestyle='-',linewidth=1.0,label='sin')
plt.plot(x,y_cos,color='blue',linestyle='-',linewidth=1.0,label='cos',alpha=0.25)

 

图表辅助元素定制

plt.title('Cos & Sin')
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$'])
plt.yticks([-1,-0.5,0.0,0.5,1.0])  
plt.legend(loc='upper left')
plt.grid()
plt.annotate('cos(1)',weight='bold',color='black',
             xy=(np.pi /3 ,0.6),
             xytext=(np.pi /3 ,0.8),
             arrowprops= dict(arrowstyle='->'))

字符串前面加r,意味着该字符将被视为原始字符,转义字符都被忽略。 

grid(): 用于设置图表中的网格线,使用linestyle参数设置网格线的样式,常用的样式有下表中的几种,plot()函数中也可以用linestyle参数设置折线图的样式。使用alpha参数设置网格线的透明度。

Axes.annotate(s, xy, *args, **kwargs)

  • s:注释文本的内容
  • xy:被注释的坐标点,二维元组形如(x,y)
  • xytext:注释文本的坐标点,也是二维元组,默认与xy相同
  • xycoords:被注释点的坐标系属性,允许输入的值如下
  • textcoords :注释文本的坐标系属性,默认与xycoords属性值相同,也可设为不同的值。除了允许输入xycoords的属性值,还允许输入以下两种:

 

 

 

 

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

plt.fill_between(x,y_cos,
                 y_sin,y_cos> y_sin,
                 color='g',
                 alpha=0.25)  

Matplotlib中通过fill_between()函数实现填充两个水平曲线之间的区域。

matplotlib.pyplot.fill_between(x,y,y2=0,where=None,interpolate=False,step=None,*,data=None,**kwargs)

参数描述:

  • x:一个数组,定义水平轴上的点
  • y:一个数组或者标量,表示y轴覆盖的下限
  • y2:一个数组或者标量,表示y轴覆盖的上限
  • where:一个布尔数组,如果需要排除某些垂直区域的填充,则定义该数组。需要注意的是,这个定义意味着两个假值之间的一个孤立的真值将不进行填充。相邻的False值将导致不填充True值的两边
  • interpolate:接受布尔值,只有在使用了where参数同时两条曲线交叉时才有效。默认情况下,被填充的区域将被放在x阵列的位置,定义一个被填充的多边形区域。与x相交的部分被裁剪。
  • step:如果填充需要一个步骤函数,则使用该参数。接受'pre'、'post'、'mid'三个值,用于指定步骤将发生的位置。pre代表区间(x[i-1],x[i])的值为y[i],x值向左移动;post代表区间(x[i],x[i+1])的值为y[i],x值向右移动;mid代表步骤发生在x位置的中间。

 

图表展示

plt,show()

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值