在一个窗口画多图
同一坐标轴下
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,11)
y=np.sqrt(x)
yy=x*2
fig,ax=plt.subplots()
ax.plot(x,y,lw=1.0,ls='-',c='coral')
ax.plot(x,yy,lw=1.0,ls='-.',c='y')
plt.show()
在一个窗口中将多个图画在同一个坐标轴中,只需在一个subplots下,ax.plot()即可。
附颜色对照:(摘自https://blog.csdn.net/Discover304/article/details/121991061)
多个子图
subplots
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,11)
y=np.sqrt(x)
yy=x*2
fig,ax=plt.subplots(1,2)
ax[0].plot(x,y,lw=1.0,ls='-',c='coral')
ax[1].plot(x,yy,lw=1.0,ls='-.',c='y')
plt.show()
subplot
subplot和subplots很接近,但还是有所区别:
import matplotlib.pyplot as plt
import numpy as np
x=[1,2]
y=[1,2]
#方法一
plt.figure()
plt.subplot(2,3,1)
plt.plot(x,y)
plt.subplot(2,3,4)
plt.plot(x,y)
plt.subplot(2,3,5)
plt.plot(x,y)
plt.show()
subplot2grid
subplt2grid可以更加精确的控制子图的位置和所占的空间大小:
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
plt.subplot2grid((3,3),(0,0),colspan=3,rowspan=1)
plt.plot(x,y)
plt.subplot2grid((3,3),(1,0),colspan=2)
plt.plot(x,y)
plt.subplot2grid((3,3),(1,2),rowspan=2)
plt.plot(x,y)
plt.show()
(3,3)表示总共有三行三列,0,0表示第一行第一列(从上往下行数增大,列数是从左至右,编码都是从0开始)
clospan表示横跨几个单位,rowspan表示纵跨几个单位,默认值均为1
在多个窗口画多图
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,11)
y=np.sqrt(x)
yy=x*2
fig,ax=plt.subplots()
ax.plot(x,y,lw=1.0,ls='-',c='coral')
fig,ax=plt.subplots()
ax.plot(x,yy,lw=1.0,ls='-.',c='y')
plt.show()
上边是两个窗口画的两个图。
文章写作匆忙,如有错误还请不吝赐教。