从函数调用pyplot在同一个p上绘制多条线

2024-10-01 09:28:36 发布

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

当我想在同一个绘图上显示多行时,我可以随意调用pyplot.plot(x,y),然后用pyplot.show()显示绘图。但是,当我定义一个函数来绘制,并且我多次调用该函数,而不是在同一个绘图上有多行,我得到了多个绘图。例如:

import numpy as np
import matplotlib.pyplot as plt

def plotsub(x, y):
    plt.plot(x, y)
    plt.show()

x = np.arange(0,10,1);
y = x*x   
plt.plot(x,y)
plt.plot(x*10,y)
plt.show()

plotsub(x,y)
plotsub(x*10,y)

以上代码的输出如下:enter image description here

但是,我希望对plotsub的两个调用的作用与多次调用plt.plot的方式相同。在

基本上,我试图获取pyplot的句柄,将其作为参数发送给函数,但我找不到该怎么做。在


Tags: 函数importnumpy绘图定义plotmatplotlibdef
1条回答
网友
1楼 · 发布于 2024-10-01 09:28:36

{{cd2>你的功能在里面。因此,每次调用plotsub,matplotlib就会如预期那样显示绘图。在

如果只想在调用plotsub之后显示绘图,可以将其移到函数之外:

import numpy as np
import matplotlib.pyplot as plt

def plotsub(x, y):
    plt.plot(x, y)

x = np.arange(0,10,1);
y = x*x   

plotsub(x,y)
plotsub(x*10,y)
plt.show()

或者,您可以将其保留在函数内,但使其成为可选的,这样您只会在最后一次调用plotsub中显示。比如:

^{pr2}$

最后,要获得对您在函数中绘制的线的引用,可以从函数中return,如下所示:

def plotsub(x, y, show=False):
    line, = plt.plot(x, y)
    if show:
        plt.show()
    return line

l1 = plotsub(x, y)

相关问题 更多 >