从不同的函数更改绘图上的线属性

时间:2015-05-11 14:03:00

标签: python matplotlib

我坚持使用可能很容易解决的问题,但我无法在互联网上找到任何有同样问题的人。

我使用matplotlib绘制一些数据。

def drawFigure(self):
    global figure
    figure = plt.figure()
    canvas = FigureCanvas(figure)
    graph = figure.add_subplot(111)
    line = graph.plot(...,...,'-',linewidth=2)

    canvas.draw()

    plt.setp(line, linewidth=10) #Works fine

def changeLineThickness(self):
    plt.setp(line, linewidth=1) #Nothing changes

首先调用drawFigure函数。线宽设置为2,然后立即设置为10,因此这个plt.setp代码工作正常。

但是,当我在drawFigure之后调用changeLineThickness函数时,plt.setp什么都不做,厚度仍为10。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

好的,可以通过重绘功能中的画布来完成这项工作。 我不太清楚为什么在第一个函数中调用canvas.draw()之后行被更新了,为什么我必须在第二个函数中重绘。

def changeLineThickness(self):
    plt.setp(line, linewidth=1)
    canvas.draw()

也许有一种更快的方法可以做到这一点,而不是重新绘制整个画布。