当前位置:  开发笔记 > 编程语言 > 正文

如何使用matplotlib在同一行中绘制多个图形?

如何解决《如何使用matplotlib在同一行中绘制多个图形?》经验,为你挑选了1个好方法。

在我Ipython Notebook,我有一个脚本生成一系列多个数字,如下所示: 在此输入图像描述

问题是,这些数字take too much space,我正在产生许多这些组合.这使我很难在这些数字之间导航.

我想在同一行中制作一些情节.我该怎么做?

更新:

感谢fjarri的建议,我已经更改了代码,这适用于绘制在同一行.

现在,我想让它们以不同的方式绘制(默认选项).我该怎么办?我尝试了一些,但不确定这是否正确.

def custom_plot1(ax = None):
    if ax is None:
        fig, ax = plt.subplots()
    x1 = np.linspace(0.0, 5.0)
    y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
    ax.plot(x1, y1, 'ko-')
    ax.set_xlabel('time (s)')
    ax.set_ylabel('Damped oscillation')

def custom_plot2(ax = None):
    if ax is None:
        fig, ax = plt.subplots()
    x2 = np.linspace(0.0, 2.0)
    y2 = np.cos(2 * np.pi * x2)
    ax.plot(x2, y2, 'r.-')
    ax.set_xlabel('time (s)')
    ax.set_ylabel('Undamped')

# 1. Plot in same line, this would work
fig = plt.figure(figsize = (15,8))
ax1 = fig.add_subplot(1,2,1, projection = '3d')
custom_plot1(ax1)
ax2 = fig.add_subplot(1,2,2)
custom_plot2(ax2)

# 2. Plot in different line, default option
custom_plot1()
custom_plot2()

在此输入图像描述



1> tglaria..:

只需使用子图.

plt.plot(data1)
plt.show()
plt.subplot(1,2,1)
plt.plot(data2)
plt.subplot(1,2,2)
plt.plot(data3)
plt.show()

(这段代码不起作用,重要的是它背后的想法)

对于2号,同样的事情:使用子图:

# 1. Plot in same line, this would work
fig = plt.figure(figsize = (15,8))
ax1 = fig.add_subplot(1,2,1, projection = '3d')
custom_plot1(ax1)
ax2 = fig.add_subplot(1,2,2)
custom_plot2(ax2)

# 2. Plot in same line, on two rows
fig = plt.figure(figsize = (8,15))                  # Changed the size of the figure, just aesthetic
ax1 = fig.add_subplot(2,1,1, projection = '3d')     # Change the subplot arguments
custom_plot1(ax1)
ax2 = fig.add_subplot(2,1,2)                        # Change the subplot arguments
custom_plot2(ax2)

这不会显示两个不同的数字(这是我从"不同的线条"中理解的),而是将两个数字,一个在另一个之上,放在一个数字中.

现在,解释subplot参数:subplot(rows, cols, axnum) rows将是图形划分的行数. cols将是该图分成的列数. axnum将是你要策划的师.

在你的情况下,如果你想并排两个图形,那么你想要一行有两列 - > subplot(1,2,...)

在第二种情况下,如果你想要两个图形一个在另一个上面,那么你想要2行和1列 - > subplot(2,1,...)

对于更复杂的发行版,请使用gridspec http://matplotlib.org/users/gridspec.html

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有