Python可视化之图表美化(plt.fill_between运用)

fill_betweenfill_between 

fill_between参数描述(用于共用X轴曲线的封闭填充):

x:一个数组,定义水平轴上的点

y:一个数组或者标量,表示y轴覆盖的下限

y2:一个数组或者标量,表示y轴覆盖的上限

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

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位置的中间。

"""

需求:绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:
(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)
y_cos, y_sin = np.cos(x), np.sin(x)

# 2.绘制折线
plt.plot(x, y_cos, 'b', linewidth=1.0 ,alpha=0.5) #绘制余弦函数
plt.plot(x, y_sin, 'r', linewidth=1.0) #绘制正弦函数

# 3.图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)
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$']) #x轴刻度标签
plt.yticks([-1.0, -0.5, 0, 0.5, 1]) #y轴刻度标签
plt.legend(['COS', 'SIN'], fancybox=True, loc='upper left') #图例在左上角,边框圆角
plt.grid() #显示网格
plt.annotate("cos(1)",xy=(1,np.cos(1)), xytext=(1.1,0.79), arrowprops=dict(arrowstyle="->", linewidth=1)) #在x=1、y=np.cos(1)的位置添加指向型注释文本
#xy=(1, 100,arrowprops=dict(arrowstyle="->")
# 4.图表样式美化(填充颜色)
plt.fill_between(x, y_cos, y_sin, y_sin < y_cos, color='g', alpha=0.25) #填充颜色

plt.show() #绘制图

要求效果图:

实际运行效果图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值