Присвоение цветов переменной в matplotlib?

Я знаю, что есть подобные вопросы в других местах здесь, но я действительно изо всех сил, чтобы понять ответы. У меня есть CSV-файл с 5 столбцами (название города, широта, долгота, скорость ветра, направление ветра), я могу построить стрелки на карте с правильной ориентацией на них, я просто хочу иметь возможность окрашивать стрелки в зависимости от номера в столбце скорости ветра.

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 ответ

  1. как насчет этого?

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

    …я не совсем уверен в ваших данных (и, следовательно, не может проверить), но это должно работать.

    также Примечание: скобки aroud строка (или любой идентификатор), как в ('b')не имеют абсолютно никакого эффекта; это то же самое, как 'b'

    и линия UKMap.UKMap.__init__('self')выглядит очень подозрительно! не должно ли это быть что-то вроде uk_map = UKMap.UKMap()(и, возможно, некоторые аргументы; но строка 'self'очень странная!)? self(не как строка) обычно просто используется внутри определения класса и не используется вне класса.