Python学习
如何在图形中增加注释的符号
如何在图形中只画纯文字的标注
如何画出一种特殊的文子,就是数学公式
工具栏
填充区域
matplotlib自带mathtext引擎,不需要安装text系统
作 为 开 始 和 结 束 符 , 如 作为开始和结束符,如 作为开始和结束符,如 y=x+z $
填充区域:对曲线下面或者曲线之间的区域进行填充,函数有两个:fill,fill_between
下面是Demo
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import datetime
#----------------图形中增加注释的符号------------------
# x = np.arange(-10,11,1)
# y = x*x
# plt.plot(x,y)
# #plt.annotate('this is the bottom',xy=(0,5),xytext=(-2,50),arrowprops=dict(facecolor='r',frac=1,headwidth=30,width=10))
# #此函数为增加注释,第一个函数是文字'this is the bottom',xy=()是指注释的起始点,xytext=()是指文字的起始的坐标
# #arrowprops=dict()函数几个功能:1.facecolor,颜色 2.frac,箭头的比例,headwidth,箭头的宽度,width箭头身体的宽度
# #plt.show()
# #----------------图形中增加纯文字的标注------------------
# plt.text(-2,40,'functio:y=x*x',family='serif',size=20,color='g',style='italic',weight='0',bbox=dict(facecolor='r',alpha=0.2))
# plt.text(-2,20,'functio:y=x*x',family='fantasy',size=20,color='r',style='oblique',weight='1000')
#plt.text()增加纯文字标注的函数,family是指选择字体类型,size字体大小,style='italic'能让文字达到斜体的效果,weigth让文字达到粗体的效果
#bbox=dict(facecolor='r'))函数为将文字描绘出来为红色,alpha调整描绘的透明度
#如何画出一种特殊的文子,就是数学公式
# fig=plt.figure()
# ax = fig.add_subplot(111)
# ax.set_xlim([1,7])
# ax.set_ylim([1,5])
# ax.text(2,4,r'$\alpha_i \beta_j \pi \lambda \omega$',size=20)
# ax.text(4,4,r'$\sin(0)=\cos(\frac{\pi}{2})$',size=20)
# ax.text(2,2,r'$\lim_{x \rightarrow y} \frac{1}{x^3}$',size=20)
# ax.text(4,2,r'$\sqrt[4]{x}=\sqrt{y}$',size=20)
# #ax.text是以面对对象的方式使用,r在字符串前面的意思是指里面的字符串不转意,
# #------------工具栏的应用------------------
# N=1000
# j=np.random.randn(N)
# k=np.random.randn(N)
# colors=np.random.rand(N)
# area=np.pi*(15*np.random.rand(N))**2 #0 to 15 point radiuses
# plt.scatter(j,k,s=area,c=colors,alpha=0.5)
# plt.show()
# ------------区域填充------------------
x = np.linspace(0.5*np.pi,10)
y1 = np.sin(x)
y2 = np.sin(2*x)
fig = plt.figure()
ax = plt.gca()
ax.plot(x,y1,color='r')
ax.plot(x,y2,color='b')
ax.fill_between(x,y1,y2,where=y1>=y2,facecolor='yellow',interpolate=True)
ax.fill_between(x,y1,y2,where=y2>y1,facecolor='green',interpolate=True)
# ax.fill_between(x,y1,y2,facecolor='blue')
plt.show()