2016-12-30 9 views
0

私はここに他のところで同様の質問があることを知っていますが、私は答えを理解するために本当に苦労しています。私は5列(町の名前、緯度、経度、風速、風向)のCSVファイルを持っている、私はそれらの上に正しい向きで地図上に矢印をプロットすることができます、私はちょうどに応じて矢印を色付けることができるようにしたい風速欄の数値。matplotlibの変数に色を割り当てる?

with open('output.csv') as latloncsv: 
    towns_csv = csv.reader(latloncsv, dialect='excel') 
    for rows in towns_csv: 
     x = float(rows[2]) # x co-ordinates 
     y = float(rows[1]) # y co-ordinates 
     u = float(rows[3]) # wind speed 
     v = float(rows[4]) # wind direction 
     for color in u: 
      if color <= 2: 
       letter = ('g') 
      elif color <=4: 
       letter = ('y') 
      elif color <=6: 
       letter = ('b') 
      elif color <=8: 
       letter = ('p') 
      else: 
       letter = ('r') 
      plt.plot(x, y, marker=(3, 0, v), markersize='10', color= ('color')) 
    UKMap.UKMap.__init__('self') 
    plt.show() 

私はそれを単一の色にすることができますが、色を変えることができるようにコードを変更する方法を知りたいだけです。

color= ('color')) 

申し訳ありませんが、これはひどくwrittin、私はまだ学んでいます。助けてくれてありがとう。

答えて

0

これはどうですか?

with open('output.csv') as latloncsv: 
    towns_csv = csv.reader(latloncsv, dialect='excel') 
    for rows in towns_csv: 
     x = float(rows[2]) # x co-ordinates 
     y = float(rows[1]) # y co-ordinates 
     u = float(rows[3]) # wind speed 
     v = float(rows[4]) # wind direction 
     if u <= 2: 
      color = 'g' 
     elif u <=4: 
      color = 'y' 
     elif u <=6: 
      color = 'b' 
     elif u <=8: 
      color = 'p' 
     else: 
      color = 'r' 
      plt.plot(x, y, marker=(3, 0, v), markersize='10', color=color) 
    UKMap.UKMap.__init__('self') 
    plt.show() 

...私はあなたのデータについて完全にはわかっていないので(テストできないかもしれませんが)、それはうまくいくはずです。

注:('b')の角かっこの文字列(または任意の識別子)はまったく効果がありません。これは'b'

と同じです。UKMap.UKMap.__init__('self')は非常に疑わしいようです。 uk_map = UKMap.UKMap()のようなものではいけません(と多分いくつかの引数が、文字列'self'は非常に奇妙です!)? self(文字列ではありません)は通常、クラス定義内でのみ使用され、クラス外では使用されません。

関連する問題