0

私はpylabでのプロットに比較的慣れていませんが、ここに質問があります。長さが 2 ~ 10 の単語を含むテキスト ファイルがあり、棒グラフを使用して各単語カテゴリの頻度をプロットする必要があります。スクリプトを作成してプロットすることはできましたが、xtick ラベルが台無しになっていて、その理由は何なのか疑問に思っています。よろしくお願いします。

two_letter=[]
three_letter=[]
four_letter=[]
five_letter=[]
six_letter=[]
seven_letter=[]
eight_letter=[]
nine_letter=[]
ten_letter=[]

inFile = open('words.txt')
for line in inFile.readlines():
    fields = line.split(' ')
    for word in fields:
        if len(word) == 2:
            two_letter.append(word)
        elif len(word) == 3:
            three_letter.append(word)
        elif len(word) == 4:
            four_letter.append(word)
        elif len(word) == 5:
            five_letter.append(word)
        elif len(word) == 6:
            six_letter.append(word)
        elif len(word) == 7:
            seven_letter.append(word)
        elif len(word) == 8:
            eight_letter.append(word)
        elif len(word) == 9:
            nine_letter.append(word)
        else: 
            len(word) == 10
            ten_letter.append(word)
two_l = len(two_letter)
three_l = len(three_letter)
four_l = len(four_letter)
five_l = len(five_letter)
six_l = len(six_letter)
seven_l = len(seven_letter)
eight_l = len(eight_letter)
nine_l = len(nine_letter)
ten_l = len(ten_letter)

all = [two_l,three_l,four_l,five_l,six_l,seven_l,eight_l,nine_l,ten_l]
cord = range(1,10)
labels = ["two_let", "three_let", "four_let", "five_let", "six_let", "seven_let", "eight_let", "nine_let", "ten_let"]


import pylab
pylab.bar(cord,all, color='#88aa33')
xticks(cord, labels, rotation='vertical')
pylab.show()

ここに画像の説明を入力

4

1 に答える 1

1

bar コマンドでキーワード引数を使用してalign、バーの中央にラベルを配置できます。

pylab.bar(cord,all, color='#88aa33', align='center')

ラベルのスペースを増やすために、次のsubplots_adjust関数を使用してプロットのサイズと位置を調整できます。

subplots_adjust(bottom=0.25)

ラベルに十分なスペースを作ることも、次の方法で自動的に行うことができます:

from mpl_toolkits.axes_grid1.axes_divider import make_axes_area_auto_adjustable
make_axes_area_auto_adjustable(gca())
于 2013-04-06T12:00:11.527 に答える