Python 子批次中重复的matplotlib绘图

Python 子批次中重复的matplotlib绘图,python,matplotlib,subplot,Python,Matplotlib,Subplot,我对Python和matplotlib相当陌生。我想画一些东西,在右边画一个主要情节的细节。但考虑到实际情节的复杂性,我不想显式地复制情节 MWE 谢谢谢谢@BigBen评论,我做了以下几点 import numpy as np import matplotlib.pyplot as plt x=np.arange(0,10,0.01) y=np.sin(x) def plotty(x, y, ax): ax.plot(x,y) fig, (ax1, ax2) = plt.subp

我对Python和matplotlib相当陌生。我想画一些东西,在右边画一个主要情节的细节。但考虑到实际情节的复杂性,我不想显式地复制情节

MWE


谢谢

谢谢@BigBen评论,我做了以下几点

import numpy as np
import matplotlib.pyplot as plt

x=np.arange(0,10,0.01)
y=np.sin(x)

def plotty(x, y, ax):
    ax.plot(x,y)

fig, (ax1, ax2) = plt.subplots(1, 2)

plotty(x, y, ax1)

plotty(x, y, ax2)

ax2.set_xlim([0.5,0.7])
ax2.set_ylim(np.sin(ax2.get_xlim()))
plt.show();
我的实际函数根据一系列参数计算PSD,将几个光谱放在同一个图上。这种语法相当优雅和简洁


谢谢

创建一个专用函数来完成所有绘图,并将轴实例同时传递给它,即对于
ax1
ax2
。您定义的函数完全没有必要,只需说,
ax1.plot(x,y)
我同意。这只是一个例子。在我的例子中,我的绘图是使用10行
ax1.plot()
,调用多个数据系列生成的。我想将
ax1
复制到
ax2
,然后重置轴限制,以放大整个绘图的较小区域。我不想写两次这10行,这将包含在我的
ploty
函数中
import numpy as np
import matplotlib.pyplot as plt

x=np.arange(0,10,0.01)
y=np.sin(x)

def plotty(x, y, ax):
    ax.plot(x,y)

fig, (ax1, ax2) = plt.subplots(1, 2)

plotty(x, y, ax1)

plotty(x, y, ax2)

ax2.set_xlim([0.5,0.7])
ax2.set_ylim(np.sin(ax2.get_xlim()))
plt.show();