import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,1,30)
y1=2*x
y2=x**2
plt.figure()#下面的都属于这一张figure
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5))
#下面的都属于这一张figure。可以用参数num来定义图的序号,用figsize设定图的大小(比例)
plt.plot(x,y2)
plt.plot(x,y1,'r:',linewidth=1)#在下一个plt.figure()之前的plt.plot()都在一个图里。
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,3,50)
y1=2*x
y2=x**2
plt.figure(num=3,figsize=(8,5))
#下面的都属于这一张figure。可以用参数num来定义图的序号,用figsize设定图的大小(比例)
plt.plot(x,y2)
plt.plot(x,y1,'r:',linewidth=1)#在下一个plt.figure()之前的plt.plot()都在一个图里。
plt.axis([-1,2,-2,3])#限定坐标轴取值范围
plt.xlabel('x')
plt.ylabel('y')
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)#替换坐标的刻度分布
#字符的首尾加上美元符号,前加上r,单词之间的空格要用\表示。汉字前后不加美元符号
plt.yticks([-2,-1.8,-1,1.22,3],
[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'旺德福'],
fontproperties='YouYuan')
#plt.yticks([-2,-1.8,-1,1.22,3],
#['really bad','bad','normal','good','旺德福'],
#fontproperties='YouYuan')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,3,50)
y1=2*x
y2=x**2
plt.figure(num=3,figsize=(8,5))
#下面的都属于这一张figure。可以用参数num来定义图的序号,用figsize设定图的大小(比例)
plt.plot(x,y2)
plt.plot(x,y1,'r:',linewidth=1)#在下一个plt.figure()之前的plt.plot()都在一个图里。
plt.axis([-1,2,-2,3])#限定坐标轴取值范围
plt.xlabel('x')
plt.ylabel('y')
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)#替换坐标的刻度分布
plt.yticks([-2,-1.8,-1,1.22,3],
['really bad','bad','normal','good','旺德福'],
fontproperties='YouYuan')
#gca='get current axis'
ax=plt.gca()
#ax.spines上下左右四条边
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')#把bottom指定的边真正作为x轴
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',-1))#把y轴的-1作为两轴交点
ax.spines['left'].set_position(('data',-0.5))#把x轴的-0.5作为两轴交点。
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,3,50)
y1=2*x
y2=x**2
plt.figure(num=3,figsize=(8,5))
#下面的都属于这一张figure。可以用参数num来定义图的序号,用figsize设定图的大小(比例)
plt.plot(x,y2)
plt.plot(x,y1,'r:',linewidth=1)
plt.axis([-1,2,-2,3])#限定坐标轴取值范围
plt.xlabel('x')
plt.ylabel('y')
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)#替换坐标的刻度分布
plt.yticks([-2,-1.8,-1,1.22,3],
['really bad','bad','normal','good','旺德福'],
fontproperties='YouYuan')
plt.figure(num=3,figsize=(8,5))
#下面的都属于这一张figure。可以用参数num来定义图的序号,用figsize设定图的大小(比例)
plt.plot(x,y2,label='up')
plt.plot(x,y1,'r:',linewidth=1,label='down')
plt.legend()
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,3,50)
y1=2*x
y2=x**2
plt.figure(num=3,figsize=(8,5))
#下面的都属于这一张figure。可以用参数num来定义图的序号,用figsize设定图的大小(比例)
plt.plot(x,y2)
plt.plot(x,y1,'r:',linewidth=1)
plt.axis([-1,2,-2,3])#限定坐标轴取值范围
plt.xlabel('x')
plt.ylabel('y')
new_ticks=np.linspace(-1,2,5)
plt.xticks(new_ticks)#替换坐标的刻度分布
plt.yticks([-2,-1.8,-1,1.22,3],
['really bad','bad','normal','good','旺德福'],
fontproperties='YouYuan')
plt.figure(num=3,figsize=(8,4))
#下面的都属于这一张figure。可以用参数num来定义图的序号,用figsize设定图的大小(比例)
l1,=plt.plot(x,y2)
l2,=plt.plot(x,y1,'r:',linewidth=1)
#等号前的逗号不能少
plt.legend(handles=[l1,l2,],labels=['up','down',],loc='best')
plt.show()
l1,=plt.plot(x,y2)
l2,=plt.plot(x,y1,'r:',linewidth=1)
#等号前的逗号不能少
plt.legend(handles=[l1,],labels=['up',],loc='best')
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y=2*x+1
plt.figure(num=1,figsize=(8,5))
plt.plot(x,y)
ax=plt.gca()
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))
x0=1
y0=2*x0+1
#线条的Annotation
plt.scatter(x0,y0,s=40,color='b')#先添加点
plt.plot([x0,x0],[y0,0],'k:',linewidth=2.5)#添加虚线
#xycoords='data'表示前边xy的坐标以数据坐标作为基准。
#xytextcoords='offset points'表示前边的偏移量是基于之前的点。
plt.annotate(r'$2x+1=%s$'%y0,xy=(x0,y0),xycoords='data',
xytext=(+30,-30),textcoords='offset points',
fontsize=16,arrowprops=dict(facecolor='black',shrink=0.05,width=2))
plt.show()
#\m表示数学形式,\+空格是对空格转换。
plt.text(-3.7,3,r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$',
fontdict={'size':16,'color':'r'})
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y=0.1*x
plt.figure(num=1,figsize=(8,5))
plt.plot(x,y,linewidth=10)
plt.ylim(-2,2)#限定坐标轴y的取值范围
ax=plt.gca()
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))
#alpha表示透明度
for label in ax.get_xticklabels()+ax.get_yticklabels():
label.set_fontsize(12) #字体字号变大
#bbox是label所占据的方形背景,facecolor是方形背景的颜色,edgecolor是方形背景的边框色
#None表示没有颜色。
label.set_bbox(dict(facecolor='white',edgecolor='None',alpha=0.9))
plt.show()
wuwu不知道为啥我没有成功。
import matplotlib.pyplot as plt
fig=plt.figure()
x=[1,2,3,4,5,6,7]
y=[2,4,1,5,3,9,8]
left,bottom,width,height=0.1,0.1,0.8,0.8
#这四个数值分别表示图的左,底离边框的距离占据边框长度的百分比。图的宽度高度占据边框的百分比
ax1=fig.add_axes([left,bottom,width,height])
ax1.plot(x,y,'r')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_title('title')
left,bottom,width,height=0.2,0.6,0.25,0.25
#这四个数值分别表示图的左,底离边框的距离占据边框长度的百分比。图的宽度高度占据边框的百分比
ax1=fig.add_axes([left,bottom,width,height])
ax1.plot(x,y,'r')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_title('title inside 1')
#法二
plt.axes([0.7,0.2,0.15,0.15])
plt.plot(x,y,'g')
plt.xlabel('x')
plt.ylabel('y')
plt.title('title inside 2')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10,0.1)
y1=0.05*x**2
y2=-1*y1+10
fig,ax1=plt.subplots()
#把ax1的坐标镜像作为ax2
ax2=ax1.twinx()
ax1.plot(x,y1,'g-')
ax2.plot(x,y2,'k:')
ax1.set_xlabel('X data')
ax1.set_ylabel('Y1',color='g')
ax2.set_ylabel('Y2',color='k')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import animation
fig,ax=plt.subplots()
x=np.arange(0,2*np.pi,0.01)
line,=ax.plot(x,np.sin(x))
def animate(i):
line.set_ydata(np.sin(x+i/10))
return line,
def init():
line.set_ydata(np.sin(x))
return line,
#长度:frames=100帧数,init_frame初始位置/帧数 interval是更新的频率。
ani=animation.FuncAnimation(fig=fig,func=animate,frames=100,init_func=init,interval=20,blit=False)
plt.show()