python子图
㈠ python plt.plot怎么把图显示出来
1, 导入matplotlib.pyplot, numpy 包:
import numpy as np
import matplotlib.pyplot as plt
2,添加主题样式:
plt.style.use('mystyle')
3, 设置图的大小,添加子图:
fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(111)
4,绘制sin, cos:
x = np.arange(-np.pi, np.pi, np.pi / 100)
y1 = np.sin(x)
y2 = np.cos(x)
sin, = ax.plot(x, y1, color='red', label='sin')
cos, = ax.plot(x, y2, color='blue', label='cos')
ax.set_ylim([-1.2, 1.2])
第二种方式 拆分显示
sin_legend = ax.legend(handles=[sin], loc='upper right')
ax.add_artist(sin_legend)
ax.legend(handles=[cos], loc='lower right')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 添加主题样式
plt.style.use('mystyle')
# 设置图的大小,添加子图
fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(111)
for color in ['red', 'green']:
n = 750
x, y = np.random.rand(2, n)
scale = 200.0 * np.random.rand(n)
ax.scatter(x, y, c=color, s=scale,
label=color, alpha=0.3,
edgecolors='none')
ax.legend()
ax.grid(True)
plt.show()
㈡ python中fig,ax=plt.subplots什么意思
fig,ax=plt.subplots的意思是将plt.subplots()函数的返回值赋值给fig和ax两个变量。
plt.subplots()是一个函数,返回一个包含figure和axes对象的元组,因此,使用fig,ax=plt.subplots()将元组分解为fig和ax两个变量。
通常,我们只用到ax:
fig,ax = plt.subplots(nrows=2, ncols=2)
axes = ax.flatten()
把父图分成2*2个子图,ax.flatten()把子图展开赋值给axes,axes[0]便是第一个子图,axes[1]是第二个。
(2)python子图扩展阅读
在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下:
def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,
subplot_kw=None, gridspec_kw=None, **fig_kw):
参数:
nrows,ncols:子图的行列数。
sharex, sharey:
设置为 True 或者 ‘all’ 时,所有子图共享 x 轴或者 y 轴,
设置为 False or ‘none’ 时,所有子图的 x,y 轴均为独立,
设置为 ‘row’ 时,每一行的子图会共享 x 或者 y 轴,
设置为 ‘col’ 时,每一列的子图会共享 x 或者 y 轴。
返回值
fig:matplotlib.figure.Figure对象
ax:子图对象(matplotlib.axes.Axes)或者是他的数组
㈢ python画多个子图如何标注图a 图b这种标注
#设置图的标题
a.set_title('a')
b.set_title('b')
㈣ 见图。python matplotlib 子图图例不显示完全。怎么解决
ax[0].legend(),ax[1].legend(),直接使用plt.legend()一般只会出现一个
㈤ python 如何绘制子图的同时绘制双坐标轴图像
用subplots替代subplot,因为在两者都可以画子图的情况下,subplots也可以同时画双y轴。
fig, ax = plt.subplots(2,2) #产生4个子图
在第1个子图里画双y轴:
ax[0].plot(x,y10) #画子图1的第一个y轴值
ax[0].set_ylabel('num0') #标记它的第一个纵坐标为'num0'
ax01 = ax[0].twinx() #产生子图1里的第二个纵坐标
ax01.plot(x,y11, )#画子图1的第二个y轴值
ax01.set_ylabel('num01')#标记子图1里的第二个纵坐标,用'num01'表示
再画第2个子图里的双y轴:
ax[1].plot(x,y20) #画子图2的第一个y轴值
ax[1].set_ylabel('num1') #标记它的第一个纵坐标为'num1'
ax11 = ax[1].twinx() #产生子图1里的第二个纵坐标
ax11.plot(x,y21, )#画子图1的第二个y轴值
ax11.set_ylabel('num11')#标记子图1里的第二个纵坐标,用'num11'表示
同理,第三第四个子图。。。。
㈥ python matplotlib模块 如何画两张图出来
python matplotlib模块 如何画两张图出来的方法:
代码如下所示:
import numpy as np
import matplotlib.pyplot as plt
#创建自变量数组
x= np.linspace(0,2*np.pi,500)
#创建函数值数组
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x*x)
#创建图形
plt.figure(1)
'''
意思是在一个2行2列共4个子图的图中,定位第1个图来进行操作(画图)。
最后面那个1表示第1个子图。那个数字的变化来定位不同的子图
'''
#第一行第一列图形
ax1 = plt.subplot(2,2,1)
#第一行第二列图形
ax2 = plt.subplot(2,2,2)
#第二行
ax3 = plt.subplot(2,1,2)
#选择ax1
plt.sca(ax1)
#绘制红色曲线
plt.plot(x,y1,color='red')
#限制y坐标轴范围
plt.ylim(-1.2,1.2)
#选择ax2
plt.sca(ax2)
#绘制蓝色曲线
plt.plot(x,y2,'b--')
plt.ylim(-1.2,1.2)
#选择ax3
plt.sca(ax3)
plt.plot(x,y3,'g--')
plt.ylim(-1.2,1.2)
plt.show()
附上效果图。
㈦ python matplotlib subplot 上面面积大下面小怎么办
在matplotlib下,一个Figure对象可以包含多个子图(Axes),可以使用subplot()快速绘制,其调用形式如下:
subplot(numRows, numCols, plotNum)
图表的整个绘图区域被分成numRows行和numCols列,plotNum参数指定创建的Axes对象所在的区域,如何理解呢?
如果numRows = 3,numCols = 2,那整个绘制图表样式为3X2的图片区域,用坐标表示为(1,1),(1,2),(1,3),(2,1),(2,2),(2,3)。这时,当plotNum = 1时,表示的坐标为(1,3),即第一行第一列的子图;
import numpy as np
㈧ Python的 matplotlib画图,怎么把子图的每个横坐标显示出来
ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)
创建画布和子图。
nrows和ncols表示将画布分割成几行几列 ,
sharex和sharey表是共用xy轴的设置。
squeeze bool
a.默认参数为True:额外的维度从返回的Axes(轴)对象中挤出,对于N*1或1*N个子图,返回一个1维数组,对于N*M,N>1和M>1返回一个2维数组。
b.为False,不进行挤压操作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。
subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。
subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。
gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。
**fig_kw:把所有详细的关键字参数传给figure()函数。
可见你没有办法单独设置某个子图的ax的。