Я бы хотел, чтобы мой сюжет обновлялся вживую. Он получает список из функции, в которую встроена функция, список постоянно увеличивается с течением времени. Таким образом, построение графика должно быть остановлено в точке и не может быть бесконечным. Более того, весь класс запускается в цикле.
Это код, который я придумал после нескольких дней исследований и программирования, но, к сожалению, я не могу заставить plpot появиться.
class LiveGraph():
def __init__(self):
fig = plt.figure()
self.ax1 = fig.add_subplot(1,1,1)
self.xar=[]
self.yar=[]
self.h1=self.ax1.plot(self.xar, self.yar)[0]
def update_plot(self):
graph_data=open("twitter-out.txt", "r")
graph_data=list(graph_data)
graph_data=graph_data[0].split(",")
x=0
y=0
for l in graph_data:
x+=1
try:
y=float(l)
except BaseException as e:
pass
self.xar.append(x)
self.yar.append(y)
self.h1.set_xdata(self.xar)
self.h1.set_ydata(self.yar)
plt.draw()
Мне бы хотелось, чтобы график отображался сам, пока остальная часть кода остается в фоновом режиме.
Код вызывается из цикла, получая твиты:
class StdOutListener(StreamListener):
def on_data(self,data):
try:
all_data = json.loads(data)
text=all_data["text"]
temp_text=TextBlob(text)
analysis=temp_text.sentiment.polarity
output = open("twitter-out.txt","a")
output.write(str(analysis))
output.write(",")
output.close()
print("sucsess")
live_graph=LiveGraph()
live_graph.update_plot()
return True
except BaseException as e:
print('Failed: ', str(e))
Этот цикл является частью библиотеки tweepy и запускается при каждом получении твита.