以XKCD漫画风格绘制正弦、余弦函数

标记出正弦与余弦函数的交点,并给相交部分上色
代码如下:

"""
Author:  yeahthon
Date   :  2019-08-09  15:15:29
E-mail:  yeahthon@163.com
"""
import  numpy as np
import  matplotlib.pyplot as plt

#Draw function image with the XKCD style
plt.xkcd()
x = np.linspace(-np.pi, np.pi)
plt.plot(x, np.cos(x), x, np.sin(x))
 #instantiate a Axes object
ax = plt.gca()

#set axes
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

#set scale
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
         ['$-\pi$', '$-\pi/2$', '$0$', '$\pi/2$', "$\pi$"])
plt.yticks([-1, 0, 1])

#add image
plt.legend(['cosine', 'sine'], loc='upper left', frameon=False)

#add the x coordinate information of intersection point
plt.text(np.pi / 4 - 0.15, -0.017, r"$\pi/4$")
plt.plot([np.pi/4, np.pi/4], [0, np.cos(np.pi/4)], '--k')

#add the y coordinate information of intersection point
plt.text(-0.6, np.cos(np.pi/4) - 0.05, r"$sqrt{2}/2$")
plt.plot([0, np.pi/4], [np.cos(np.pi/4), np.cos(np.pi/4)], '--k')

#fill in the area(π/4~π/2)with color
plt.fill_between(np.linspace(0, np.pi/4),
                np.sin(np.linspace(0, np.pi/4)))
 
 #fill in the area(π/4~π/2)with color
plt.fill_between(np.linspace(np.pi/4, np.pi/2),
                np.cos(np.linspace(np.pi/4, np.pi/2)))

#show image
plt.show()

运行如图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值