나는 zipf 배포본을 조합하여 실행하려는 단락 목록을 가지고 있습니다.matplotlib를 사용하여 Zipf 배포를 구축하여 피팅 된 선을 그려야합니다.
내 코드는 다음과 같습니다 :
from itertools import *
from pylab import *
from collections import Counter
import matplotlib.pyplot as plt
paragraphs = " ".join(targeted_paragraphs)
for paragraph in paragraphs:
frequency = Counter(paragraph.split())
counts = array(frequency.values())
tokens = frequency.keys()
ranks = arange(1, len(counts)+1)
indices = argsort(-counts)
frequencies = counts[indices]
loglog(ranks, frequencies, marker=".")
title("Zipf plot for Combined Article Paragraphs")
xlabel("Frequency Rank of Token")
ylabel("Absolute Frequency of Token")
grid(True)
for n in list(logspace(-0.5, log10(len(counts)-1), 20).astype(int)):
dummy = text(ranks[n], frequencies[n], " " + tokens[indices[n]],
verticalalignment="bottom",
horizontalalignment="left")
는 처음에 나는 어떤 이유로 다음과 같은 오류가 발생하고 이유를 알고하지 않습니다 내가 "는 그릴을 시도
IndexError: index 1 is out of bounds for axis 0 with size 1
목적 이 그래프에서 "맞춤 선"을 선택하고 해당 값을 변수에 할당합니다. 그러나 나는 그것을 어떻게 추가 할 지 모른다. 어떤 도움이라도이 두 가지 문제에 크게 감사 할 것입니다.
를 더 이상이다 명확한 이유를 아래의이 질문과 관련이 답; 게시자의 코드를 원래 상태로 되돌려 보내 주시면 이후 독자가 원래의 문제와 해결책을 볼 수 있습니다. – dshort