将python plot存储为变量,并重新加载它以覆盖另一个p

2024-06-26 00:13:53 发布

您现在位置:Python中文网/ 问答频道 /正文

在Mathematica中,可以将绘图存储在变量中,然后在稍后的某个时间将其覆盖。例如

plt1 = Plot[Cos[x],{x,0,Pi}];
plt2 = Plot[Sin[x],{x,0,Pi}];
plt3 = Plot[x,{x,0,Pi}];

Show[plt1,plt2]
Show[plt1,plt3]

给出两个图,一个覆盖cos(x)和sin(x)图,另一个覆盖cos(x)和x图。因此,我不需要为第二个覆盖复制cos(x),因为它已经保存在plt1中。你知道吗

我想在python中也会发生同样的事情。我有一个二维函数,这是很费时的绘图,我需要重新打印它,并覆盖它与一些其他数据每次。我可以只绘制一次,然后将其与其他数据的绘图重叠吗?你知道吗


Tags: 数据绘图plotshow时间pisincos
1条回答
网友
1楼 · 发布于 2024-06-26 00:13:53

我将把这个问题解释为询问matplotlib(因为它被标记为matplotlib),但是当然还有其他python绘图工具,它们的行为可能不同。你知道吗

在matplotlib中,艺术家(如线条)必须是一个图形的一部分。不能将同一艺术家添加到多个人物。
因此,通常的解决办法是不想复制艺术家本身,而是创建艺术家的过程。你知道吗

def mycos(x, ax=None, **kwargs):
    ax = ax or plt.gca()
    ax.plot(x, np.cos(x), **kwargs)

def mysin(x, ax=None, **kwargs):
    ax = ax or plt.gca()
    ax.plot(x, np.sin(x), **kwargs)

x = np.linspace(0,2*np.pi)

# Create one figure with two subplots, plot one function in each subplot
fig, axes = plt.subplots(2)
mycos(x, ax=axes[0])
mysin(x, ax=axes[1])

# Create another figure with one subplot, plot both functions
fig, ax = plt.subplots(1)
mycos(x, ax=ax)
mysin(x, ax=ax)

相关问题 更多 >