У меня возникла проблема с сохранением графиков matplotlib как изображений. Изображения сохраняются иначе, чем отображаются, когда я вызываю метод .show() на графике. Пример: http://s1.postimg.org/lbyei5cfz/blue5.pngMatplotlib несколько строк на графике
Я не уверен, что еще делать. Я провел последние часы, пытаясь понять, что вызывает это, но я не могу понять это.
Вот мой код целиком.
import matplotlib.pyplot as plt
import random
turn = 1 #for the x values
class Graph():
def __init__(self, name, color):
self.currentValue = 5 #for the y values
self.x = [turn]
self.y = [self.currentValue]
self.name = name
self.color = color
def update(self):
if random.randint(0,1): #just to show if the graph's value goes up or down
self.currentValue += random.randint(0,10)
self.y.append(self.currentValue)
else:
self.currentValue -= random.randint(0,10)
self.y.append(self.currentValue)
self.x.append(turn)
def plot(self):
lines = plt.plot(self.x,self.y)
plt.setp(lines, 'color',self.color)
plt.savefig(self.name + str(turn))
#plt.show() will have a different result from plt.savefig(args)
graphs = [Graph("red",'r'),Graph("blue",'b'),Graph("green",'g')]
for i in range(5):
for i in graphs:
i.update() #changes the x and y value
i.plot() #saves the picture of the graph
turn += 1
Извините, если это глупая ошибка, которую я делаю, я просто нахожу это свойственно, как plt.show() и plt.savefig различны.
Спасибо за помощь.
После повторной проверки ваших вопросов, мой ответ может быть совершенно излишен ... мой мозг не функционирует сегодня; Если да, голосуйте соответственно, и я удалю свой ответ. –
Спасибо за помощь. Следует, однако, отметить, что, выполняя метод, который вы мне показали, DID работает, однако он использовал огромное количество оперативной памяти. (Почти 1 Гб за то, что я делал). Проще говоря, plt.clf(), чтобы очистить график, было намного более эффективным. – user3780831