Экспоненциальный график отображается как линейный график в python - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь построить показатель степени 2 против 2 в степени экспоненты, но я продолжаю получать линейный график вместо кривой. Я не уверен, что делаю не так.

введите описание изображения здесь

import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
from random import seed
from random import random
import math

tiktok=0


#Desired style
style.use('dark_background')

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)


T= open('live_graphText.txt','w+')
T.truncate(0)
T.close()
test = f=open('live_graphText.txt','w+')
for i in range(10): 
    test.write("%d,%d\n"%(i,math.pow(2,i)))
    tiktok = tiktok+i
test.close()

Вдобавок я пытаюсь использовать анимацию живого графика из matplotlib.animation с созданным мной файлом. чтобы автоматически продолжать добавлять точки в файл, но кажется, что функция даже не вызывается. Я не уверен, что я просто вызвал его в неправильном месте или функция просто не имеет смысла

#This is not being called
def edit(tik):
    global tiktok
    f=open('live_graphText.txt','a+')
    f.write("%d,%d\n"%(tik,math.pow(2,tik)))
    print("HelloWorld")
    tiktok = tiktok +1
    f.close()


def animate(i):
    #Opening the file to read
    graph_data = open('live_graphText.txt','r').read()
    #Split the lines by \n
    lines=graph_data.split('\n')
    xs =[]
    ys =[]
    for line in lines:
        #This if statement ignores any white space at the end of the file
        if len(line)>1:
            x,y = line.split(',')
            xs.append(x)
            ys.append(y)
    #print(xs)
    #print(ys)

    ax1.clear()
    ax1.plot(xs,ys)

# Параметры: (Где построить функцию, функцию, которую мы строим, интервал, который мы хотим построить в миллисекундах)

ani = animation.FuncAnimation(fig,animate,interval=1000)


plt.show()
while tiktok<20:
    edit(tiktok)
print(tiktok)
plt.show()

Любая помощь приветствуется!

...