Я ищу способ создать цветовую карту в python/matplotlib, которая относится к назначенному целочисленному значению и остается этим целочисленным значением. Вот пример того, как я определяю карту цветов Matlab:
c_map = [1 1 1;... % Integer assignment = 0 - Air - white
0.6 1 0.8;... % Integer assignment = 1 - Water - cyan
1 0.6 0.2]; % Integer assignment = 2 - Sediments - orange
позже он вызывается во время процедуры построения графика:
colormap(c_map);
pcolor(xvec,zvec,ColorIntegers);
shading interp, colormap, caxis([0 3]), axis ij
Целочисленные значения всегда остаются неизменными (т. е. воздух = 0, вода = 1, отложения = 2).
Я просмотрел документацию и стек matplotlib, но не нашел способа создать эту цветовую карту определенного стиля, которая связывает соответствующие целые числа с цветом. Большинство вопросов касаются расходящихся, струйных, центрирующих, линейных, нелинейных, а не последовательной окраски конкретных цветовых карт. Каждый цвет должен соответствовать этому конкретному целочисленному значению.
Любая помощь будет оценена, спасибо заранее.
mapping.index(material)
или что-то в этом роде. Не очень хороший хак, но все же. - person Jean Nassar   schedule 27.09.2015y
равноarray([["water", "water", "sediment", ...]])
, и вы хотели преобразовать его в целые числа.mapping
может быть списком (["air", "water", "sediment", "rock"]
) или словарем ({"air": 0, "water": 1, "sediment": 2, "rock": 3}
). Использованиеmapping.index(material)
для списка илиmapping[material]
для словаря позволит вам автоматически преобразовать его в числа для рисования. - person Jean Nassar   schedule 27.09.2015