在matplotlib中为变量指定颜色?

时间:2016-12-30 18:32:54

标签: python matplotlib

我知道其他地方也有类似的问题,但我真的很难理解答案。我有一个包含5列(城镇名称,纬度,经度,风速,风向)的CSV文件,我可以在地图上绘制正确方向的箭头,我只想根据颜色对箭头进行着色风速列中的数字。

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'))

对不起,如果写得太厉害,我还在学习。谢谢你的帮助。

1 个答案:

答案 0 :(得分: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')中的括号aroud字符串(或任何标识符)绝对没有效果;这与'b'

相同

并且UKMap.UKMap.__init__('self')行看起来非常可疑!不应该像uk_map = UKMap.UKMap()(也许是一些参数;但字符串'self'非常奇怪!)? self(不是字符串)通常只在类定义中使用,不在类外使用。