我坚持使用可能很容易解决的问题,但我无法在互联网上找到任何有同样问题的人。
我使用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。
我在这里做错了什么?
答案 0 :(得分:0)
好的,可以通过重绘功能中的画布来完成这项工作。 我不太清楚为什么在第一个函数中调用canvas.draw()之后行被更新了,为什么我必须在第二个函数中重绘。
def changeLineThickness(self):
plt.setp(line, linewidth=1)
canvas.draw()
也许有一种更快的方法可以做到这一点,而不是重新绘制整个画布。