2016-12-05 4 views
-1
def matplotlib(i): 

    graph_data = open('sampleData.txt', 'r').read() 
    lines = graph_data.split('\n') 
    xs = [] 
    ys = [] 
    for line in lines: 
     if len(line) >1: 
      x, y = line.split(',') 
      xs.append(x) 
      ys.append(y) 

    fig.clear() 

    'Limits' 
    ax = plt.gca() 
    ax.set_xlim([80, -80]) 
    ax.set_ylim([42, -42]) 
    plt.axis('equal') 

    'Labels' 
    plt.xticks([-16, -32, -48, -64, -80, 0, 16, 32, 48, 64, 80]) 
    plt.yticks([-42, -28, -14, 0, 14, 28, 42]) 

    plt.show() 

    plt.scatter(xs, ys) 

'Toolbar Buttons' 

insertButt = Button(toolbar, text="Matplotlib TST", fg='Dark Red', bg="Dim Grey", activebackground='Dim Grey', 
        activeforeground='Dark Red', command=matplotlib).pack(side=LEFT, padx=2, pady=2) 

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

단추를 사용하여 함수를 실행하려고하면 문제가 발생합니다. 그것은 버튼을 사용하지 않고 잘 작동합니다. 내가matplotlib() 누락 1 필수 위치 인수 :

하기 matplotlib()없는 한 필요한 위치 인수 오류를 얻을 : 'i'를

내가 단순히를 제거하여이 문제를 해결하려고, 난, 나는 오류를 가지고,

하기 matplotlib() 0 위치 인수하지만 1

나는 또한 내 버튼의 명령 =하기 matplotlib (I) 후 (i)를 퍼팅 시도

을 받았다 걸립니다) (걸립니다 내 그래프는 빈 설정하고이 오류,

하기 matplotlib있어 위치 지정 인수가 0이지만 1이 부여되었습니다

라이브 그래프를 만드는 방법을 찾으려고 노력하고 있습니다. Tkinter의 버튼으로 실행할 때만 작동하지 않는 이유를 모르겠습니다. .

답변

0

지금 가지고있는 것에 기초 matplotlib (i) - 정말 당신의 함수에 익숙하지 않아서 제거 할 것이므로 matplotlib (i)에서 matplotlib()로 정의를 변경하십시오.

의견을 기반으로 편집되었습니다.

+0

마지막 문장 또는 적어도 오해의 소지가 있음. 함수를 버튼과 연결할 때 괄호를 포함하지 마십시오. –

+0

당신은 바로 내 대답을 수정했습니다 감사합니다 – Dilmer

1

command=matplotlib 

인수

matplotlib()없이 기능을 수행하지만

FuncAnimation(matplotlib) 

한 인수와 동일한 기능을 수행한다.

그래서 당신은 그래서 당신은 기본값 None

def matplotlib(i=None): 

을 할당 할 수 있습니다

당신은 matplotlib() 내부 i를 사용하지 않는 def matplotlib(i): 또는 def matplotlib():이있을 때 당신은 두 개의 서로 다른 오류가 발생할 수 있으며 함께하고 인수없이 작동합니다 .


FuncAnimationi으로 "현재의 프레임 번호"를 전송하고 (즉 sin(i)) (을 표시) 또는 다른 플롯을 생성하기 위해 목록에서 다른 값을 얻을 수 있습니다.

관련 문제