import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False %matplotlib inline fig=plt.figure() ax1=fig.add_subplot(121) t=np.arange(0.0,5,0.01) s=np.sin(2*np.pi*t) ax1.plot(t,s,lw=2) bbox=dict(boxstyle='round',fc='white') plt.annotate('local max',xy=(2.3,1),xytext=(3,1.5), arrowprops=dict(facecolor='black',edgecolor='red',headwidth=7,width=2),bbox=bbox) #arrowstyle箭头类型,arrowstyle="->",connectionstyle="arc3"指的是xy与xytext之间的连接类型 bbox_prop=dict(fc='white') ax1.set_ylabel('Y',fontsize=12) ax1.set_xlabel('X',fontsize=12) ax1.set_ylim(-2,2) ax1.text(1,1.2,'max',fontsize=18) ax1.text(1.2,-1.8,'$y=sin(2*np.pi*t)$',bbox=bbox,rotation=10,alpha=0.8) ax2=fig.add_subplot(122) x=np.linspace(0,10,200) y=np.sin(x) ax2.plot(x,y,linestyle='-.',color='purple') ax2.annotate(s='Here I am',xy=(4.8,np.sin(4.8)),xytext=(3.7,-0.2),weight='bold',color='k', arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'), bbox=dict(boxstyle='round,pad=0.5',fc='yellow', ec='k',lw=1 ,alpha=0.8)) ax2.set_ylim(-1.5,1.5) ax2.set_xlim(0,10) bbox=dict(boxstyle='round',ec='red',fc='white') ax2.text(6,-1.9,'$y=sin(x)$',bbox=dict(boxstyle='square',facecolor='white',ec='black')) ax2.grid(ls=":",color='gray',alpha=0.5) #设置水印(带方框的水印) ax2.text(4.5,1,'NWNU',fontsize=15,alpha=0.3,color='gray',bbox=dict(fc="white",boxstyle='round',edgecolor='gray',alpha=0.3)) plt.show()
时间: 2023-12-23 09:04:48 浏览: 175
import numpy as np import matplotlib.pyplot as plt import math
这段代码使用 Matplotlib 库绘制了两个子图,其中第一个子图绘制了正弦函数的图像,并标注了局部最大值,第二个子图绘制了另一个正弦函数的图像,并添加了箭头标注和水印。
具体解释如下:
1. 导入库和设置中文显示
```
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
%matplotlib inline
```
这部分代码导入了 Matplotlib 库和 Numpy 库,并设置了中文显示。
2. 创建画布和子图
```
fig=plt.figure()
ax1=fig.add_subplot(121)
ax2=fig.add_subplot(122)
```
这部分代码创建了一个画布 `fig` 和两个子图 `ax1` 和 `ax2`。
3. 绘制第一个子图
```
t=np.arange(0.0,5,0.01)
s=np.sin(2*np.pi*t)
ax1.plot(t,s,lw=2)
ax1.set_ylabel('Y',fontsize=12)
ax1.set_xlabel('X',fontsize=12)
ax1.set_ylim(-2,2)
ax1.text(1,1.2,'max',fontsize=18)
ax1.text(1.2,-1.8,'$y=sin(2*np.pi*t)$',bbox=bbox,rotation=10,alpha=0.8)
bbox=dict(boxstyle='round',fc='white')
plt.annotate('local max',xy=(2.3,1),xytext=(3,1.5), arrowprops=dict(facecolor='black',edgecolor='red',headwidth=7,width=2),bbox=bbox)
```
这部分代码绘制了第一个子图,包括正弦函数的图像、局部最大值的标注、正弦函数公式的文本框等。
4. 绘制第二个子图
```
x=np.linspace(0,10,200)
y=np.sin(x)
ax2.plot(x,y,linestyle='-.',color='purple')
ax2.annotate(s='Here I am',xy=(4.8,np.sin(4.8)),xytext=(3.7,-0.2),weight='bold',color='k', arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'), bbox=dict(boxstyle='round,pad=0.5',fc='yellow', ec='k',lw=1 ,alpha=0.8))
ax2.set_ylim(-1.5,1.5)
ax2.set_xlim(0,10)
bbox=dict(boxstyle='round',ec='red',fc='white')
ax2.text(6,-1.9,'$y=sin(x)$',bbox=dict(boxstyle='square',facecolor='white',ec='black'))
ax2.grid(ls=":",color='gray',alpha=0.5)
ax2.text(4.5,1,'NWNU',fontsize=15,alpha=0.3,color='gray',bbox=dict(fc="white",boxstyle='round',edgecolor='gray',alpha=0.3))
```
这部分代码绘制了第二个子图,包括另一个正弦函数的图像、箭头标注、水印等。
5. 显示图像
```
plt.show()
```
这部分代码显示了绘制的图像。
阅读全文