python之matplotlib (2 画多图)

在一个窗口画多图

同一坐标轴下

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()

上边是两个窗口画的两个图。

文章写作匆忙,如有错误还请不吝赐教。

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 使用Matplotlib可以轻松地画出多个图,可以使用subplot函数来实现。subplot函数可以将画布分成多个子图,然后在每个子图上绘制不同的图形。 例如,下面的代码将画布分成2行2列,然后在每个子图上绘制不同的图形: ```python import matplotlib.pyplot as plt # 创建画布 fig = plt.figure() # 创建第一个子图 ax1 = fig.add_subplot(2, 2, 1) ax1.plot([1, 2, 3, 4], [1, 4, 2, 3]) # 创建第二个子图 ax2 = fig.add_subplot(2, 2, 2) ax2.plot([1, 2, 3, 4], [1, 4, 2, 3], 'r--') # 创建第三个子图 ax3 = fig.add_subplot(2, 2, 3) ax3.plot([1, 2, 3, 4], [1, 4, 2, 3], 'g^') # 创建第四个子图 ax4 = fig.add_subplot(2, 2, 4) ax4.plot([1, 2, 3, 4], [1, 4, 2, 3], 'bo') # 显示图形 plt.show() ``` 这个例子中,我们创建了一个2行2列的画布,然后在每个子图上绘制了不同的图形。在每个子图中,我们都使用了不同的线条样式和颜色来区分不同的图形。最后,我们使用show函数来显示图形。 ### 回答2: Pythonmatplotlib是一个强大的绘图库,可以绘制多个图,让数据更加清晰、易于理解。 要画多个图,我们需要使用matplotlib的子图功能。子图就是将画布划分为多个区域,每个区域都可以绘制单独的图形。我们可以使用subplot()函数来创建子图,并指定子图的数量。 例如,如果我们想要在同一个画布上画3个图,每个图都占用画布的1/3,我们可以这样做: ``` import matplotlib.pyplot as plt # 创建画布大小为8x6的子图,3行1列 fig, axs = plt.subplots(3, 1, figsize=(8, 6)) # 绘制第一个子图 axs[0].plot([1, 2, 3], [4, 5, 6]) # 绘制第二个子图 axs[1].scatter([1, 2, 3, 4], [5, 6, 7, 8], s=[30, 80, 120, 200]) # 绘制第三个子图 axs[2].bar(['A', 'B', 'C'], [3, 5, 7]) plt.show() ``` 其中,第一个参数表示子图的行数,第二个参数表示子图的列数,第三个参数指定画布的大小。这个例子中,我们创建了一个大小为8x6的画布,共3个子图,每个子图占用画布的1/3。然后,我们在每个子图中绘制不同的图形: - 第一个子图是一个折线图,使用plot()函数绘制。 - 第二个子图是一个散点图,使用scatter()函数绘制。此外,我们还通过s参数指定了不同点的大小。 - 第三个子图是一个柱状图,使用bar()函数绘制。 最后,我们使用show()函数显示绘制的图形。 除了使用subplot()函数,我们还可以使用add_subplot()函数来创建子图。这个函数的用法与subplot()函数类似,只不过需要在每个子图后手动添加下一个子图。例如,我们可以这样写: ``` fig = plt.figure(figsize=(8, 6)) # 添加第一个子图 ax1 = fig.add_subplot(311) ax1.plot([1, 2, 3], [4, 5, 6]) # 添加第二个子图 ax2 = fig.add_subplot(312) ax2.scatter([1, 2, 3, 4], [5, 6, 7, 8], s=[30, 80, 120, 200]) # 添加第三个子图 ax3 = fig.add_subplot(313) ax3.bar(['A', 'B', 'C'], [3, 5, 7]) plt.show() ``` 这个例子中,我们首先创建了一个大小为8x6的画布,然后使用add_subplot()函数依次添加3个子图,对每个子图进行绘制,最后显示所有的图形。 无论使用哪种方法,当我们需要在同一个画布上绘制多个图形时,使用matplotlib的子图功能可以方便地实现。 ### 回答3: Python中有很多图形库可以选择,其中matplotlib是最广泛使用的图形库之一。Matplotlib提供了一个方便的界面,用于绘制各种类型的图形,包括折线图、散点图、柱状图、等高线图等。 当我们需要画多个图时,Matplotlib提供了很多方法来实现这一目的。下面是一些常用的方法: 1. 使用subplot()函数:subplot()函数可以将画布分成若干个小区域,并在每个小区域绘制一个图。其语法为:subplot(nrows, ncols, index, **kwargs),其中nrows和ncols指定画布的行数和列数,index指定当前区域的位置。 2. 使用subplots()函数:subplots()函数可以同时创建多个子图,并将它们存储在一个numpy数组中。其语法为:fig, axs = plt.subplots(nrows, ncols, **kwargs),其中fig是画布对象,axs是numpy数组,包含每个子图的Axes对象。 3. 使用add_subplot()函数:add_subplot()函数是Figure对象的一种方法,其可以将一个Axes对象添加到画布中。可以使用add_subplot()方法来创建一个Axes对象,并在其中绘制一个或多个图。 4. 使用GridSpec()类:GridSpec()类可以将一个画布分割成任意形状的区域,每个区域可以添加一个Axes对象。可以使用GridSpec()类来创建一个网格,并在其中添加多个子图。 无论选择哪种方法,Matplotlib都可以方便地绘制多个图形。在选择方法时,可以根据不同需求来选择最合适的方法。例如,如果需要在一个画布中同时绘制多个图形,则使用subplots()函数或GridSpec()类是比较合适的选择。如果只需要在不同的区域绘制图形,则可以使用subplot()函数或add_subplot()函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C.L.L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值