2012-03-20 16 views
0

Я закодировал скрипт python, чтобы получить график, который динамически изменяется в файле. Вот код:График с большим количеством точек

def get_plot(): 
    print self.data1 #initialized to [0,0,0,0] 
    print '\n' 
    plt.subplot(111) 
    data0 = 0,1,2,3 
    p1=plt.plot(data0,self.data1,'ro') 
    plt.setp(p1, linewidth=0.5, color='r') 
    ..... 
    plt.savefig("file.png") 

Я использую функцию для вызова repeteadly функции выше. Если я проверю значения self.data1, все работает, потому что они меняются динамически, как я хочу. Но сохраненный граф содержит 4 значения для каждого значения data0, а не только один.

Предложения?

+0

Можете ли вы быть ясно? Я использовал: self.timeout_source = glib.timeout_add (self.sleep_time, self.get_plot) –

ответ

1

Я думаю, что может быть что-то, о чем вы нам не говорите.
я бегу следующее:

plt.subplot(111) 
data0 = 0,1,2,3 
p1 = plt.plot(data0,[0,0,0,0],'ro') 
plt.setp(p1, linewidth=0.5, color='r') 
plt.show() 

И получите:

enter image description here

+0

О, конечно, что бы я хотел получить. Но я понимаю, что сказал. У меня есть функция, выше которой вызывается в интервале созданного glib.timeout_add (self.sleep_time, self.get_plot) Каждый раз, значение OY «у» вектор отличается и содержит последние 3 предыдущие значения и новый (это круговой буфер) –

+0

@FrancoHh: вы можете попробовать вызвать 'plt.clf()' после вашего вызова 'plt.savefig()'. – bernie

Смежные вопросы