2014-12-10 5 views
1

나는 분산 플롯을 만들고 다른 것들을하기 위해 NLTK를 사용하고 있습니다. 문제는, 코드를 계속 실행하려면 분산 플롯을 만드는 창이 수동으로 닫아야한다는 것입니다. 플롯을 파일로 보내고 스크립트를 계속 움직이게 할 수 있습니까? 나는 다른 플롯과 같은 문제가 있다고 가정합니다. NLTK source에서 이 이미 포함되어 있습니다. 내 자신의 플로팅 기능을 쓰지 않고서는 이것이 가능하지 않을 수도 있습니다.NLTK 플롯을 파일로 보내려면 어떻게해야합니까?

플롯과 함께 열리는 파이썬 창을 닫을 때까지 2 행에서 멈추는 코드입니다.

# dispersion plots for search terms 
def disp_plot(texts, terms): 
    concat_text = ''.join(texts.values()) 
    tokens = nltk.word_tokenize(concat_text) 
    text = nltk.Text(tokens) 
    text.dispersion_plot(terms) 

답변

1

내가 같은 문제로 실행하고 내 자신의 기능에 pylab.show를 재 할당하여 해결 :

1 # do some analysis 
2 disp_plot(days, key_terms) 
3 diversity_table(days, "Day") 

다음은 disp_plot 기능입니다.

import pylab 

counter = 0 
def filename_generator(): 
    global counter 
    to_return = 'myfig{0}.png'.format(counter) 
    counter += 1 
    return to_return 

def my_show(): 
    return pylab.savefig(filename_generator()) 

을 변경하여 disp_plot()을

def disp_plot(texts, terms): 
    concat_text = ''.join(texts.values()) 
    tokens = nltk.word_tokenize(concat_text) 
    text = nltk.Text(tokens) 
    pylab_orig_show = pylab.show 
    pylab.show = my_show 
    text.dispersion_plot(terms) 
    pylab.show = pylab_orig_show 
일부는 지구에 대한 주장

처럼 보이는,하지만이 수행하는 라이브러리를 얻을 그냥 빨리 해킹 : 당신은 같은 것을 할 수 당신이 원하는.

관련 문제