0

matplotlib と for ループを使用して 1 つのグラフに複数の線をプロットしようとしていますが、最初の反復後にコードが機能しません。コードは次のとおりです。

import csv
import matplotlib.pyplot as plt
r = csv.reader(open('CrimeStatebyState.csv', 'rb'))
line1 = r.next()

def crime_rate(*state):
    for s in state:
        orig_dict = {}
        for n in range (1960,2006):
            orig_dict[n] = []
        for line in r:
            if line[0] == s:
                orig_dict[int(line[3])].append(int(line[4]))
        for y in orig_dict:
            orig_dict[y] = sum(orig_dict[y])
        plt.plot(orig_dict.keys(), orig_dict.values(),'r')
        print orig_dict.values()
        print s

crime_rate("Alabama", "California", "New York")

返されるものは次のとおりです。

[39920, 38105, 41112, 44636, 53550, 55131, 61838, 65527, 71285, 75090, 85399, 86919, 84047, 91389, 107314, 125497, 139573, 136995, 147389, 159950, 190511, 191834, 182701, 162361, 155691, 158513, 173807, 181751, 188261, 190573, 198604, 219400, 217889, 204274, 206859, 206188, 205962, 211188, 200065, 192819, 202159, 192835, 200331, 201572, 201664, 197071]
Alabama
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
California
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
New York
**[[[Graph of Alabama's values]]]**

ループを 1 回実行した後にゼロが返されるのはなぜですか? これが、他の 2 つのグラフが表示されない理由ですか? sum 関数、"for line in r" ループ、または *state の使用に問題はありますか?

情報不足でしたらすみません!助けてくれた親切/知識のある人に感謝します。

4

2 に答える 2