python画图:subplot和subplots的使用方法,如何多图合一

目录

subplot的简单使用方法

subplots的简单使用方法


先说区别:

subplot是一个区域一个区域的画图,逐渐分割

subplots是直接分割成很多小区域,不管你画不画都存在,并且每个小区域是独立的。

总而言之就是没什么区别。喜欢哪个用哪个,subplot简单点。

但是如果你已经有一个图的排布构思,知道哪个图放在哪里合适,那么用subplots更合适点。

subplot的简单使用方法:

这里我们以二次幂函数和三次幂函数为例,完成多图合一。

先写subplot选择“纸”的位置,再写plot进行画图

from matplotlib import pyplot as plt
import numpy as np
x=np.linspace(-10,10,100)
# 用linspace函数可以生成浮点数列表,但list(range(~))只能强制转换成整数列表
y1=x**2
y2=x**3
plt.figure()
plt.subplot(1,2,1) # 在1行2列的第一列作图,下同理,主打一个分别处理,一个一个写
plt.plot(x,y1)
plt.subplot(1,2,2)
plt.plot(x,y2)
plt.show()

 运行结果为:

python画图:subplot和subplots的使用方法,如何多图合一_第1张图片

subplot对于完成一般合并图像已经足够了,建议就用这个就可以了。

subplots使用方法:

from matplotlib import pyplot as plt
import numpy as np
x=np.linspace(-10,10,100)
y1=x**2
y2=x**3
c=list(range(-10,10,4))#格外给一个x刻度的列表
b,a=plt.subplots(1,3,sharex=True,sharey=False)
plt.xticks(c)#使用subplots函数时,修改x轴刻度可一并修改
a1=a[0]
a2=a[2]
a1.plot(x, y1,color='r')
a2.plot(x, y2,color='b')
plt.show()

 个人理解:

# b指代 创造一个图命名为b,相当于b=plt.figure()
# a指代 把这个图分成m行n列,参数由后面subplots写,这里分成1行3列
# sharex代表是否共用x轴

tips:

1.这是对分成的三个区域命名,a[0]代表第1个位置,命名为a1,不能单一理解成类似于数组


2.当行数或者列数其一为1时,数组必须是一位数组,某行或列忽略不写,eg:分成1行3列时,a[0]表示第一行第一列。若分成2行3列时,a[0,1]表示第一行第二列。

运行结果为:

python画图:subplot和subplots的使用方法,如何多图合一_第2张图片

*******************************************************************************************************

如上对a的处理是先把分成所有区域用‘a’命名,再对a进行“填图”,我们还可以用下面方式来写,更为简单(直接在定义中将a分割并命名):

from matplotlib import pyplot as plt
import numpy as np
# import pandas as pd
x=np.linspace(-10,10,100)
y1=x**2
y2=x**3
b,(a1,a2)=plt.subplots(1,2,sharex=True,sharey=False)
#一行一行的给值,(a1,a2)作为第一行的第一列和第二列
a1.plot(x, y1)
a2.plot(x, y2)
a1.set_xlabel("shuzi")
#扩展:对a1子图添加x轴标题
plt.show()

运行结果为:

python画图:subplot和subplots的使用方法,如何多图合一_第3张图片

你可能感兴趣的:(python,开发语言,matplotlib,pycharm,numpy)