如何针对不同的轴参数重新绘制pyplot多次

时间:2017-05-10 07:34:49

标签: matplotlib ipython-notebook

我正在使用IPython Notebook。我在同一个图中有一堆图。 我需要使用不同的轴参数显示这些图,即以下四种情况:

Cases  x-axis   y-axis
1      non-log  non-log
2      non-log  log
3      log      non-log
4      log      log

有这样简单的方法:

#many lines of code for generating bunch of plots
plt.show()

#figure shown with non-log axis

ax.set_yscale('log')
plt.show()

#figure shown with log y-axis    

ax.set_xscale('log')
plt.show()

#figure shown with log x-axis and log y-axis

1 个答案:

答案 0 :(得分:1)

plt.show()将显示图形并在之后丢弃它们。它不打算在脚本中多次使用。

您拥有的选项是在函数中进行绘图,并根据参数创建不同的图形。以下将为所有4个案例创建数据:

import matplotlib.pyplot as plt
import numpy as np

x = np.logspace(0,3, 250)
y = .4*x

def plot(x,y,logx=False, logy=False):
    fig, ax = plt.subplots()
    if logy: ax.set_yscale('log')
    if logx: ax.set_xscale('log')
    ax.plot(x,y)


plot(x,y)
plot(x,y, True, False)
plot(x,y, False, True)
plot(x,y, True, True)

plt.show()