Как создать собственные имена цветов в matplotlib, используя шестнадцатеричные значения? - PullRequest
0 голосов
/ 08 января 2019

Итак, я пытался создать согласованную цветовую карту или цветовые коды с использованием шестнадцатеричных значений. Итак, скажем, что у меня есть ниже кадр данных:

DataFrame

Я хотел бы использовать позицию из столбца DEPT_NAME в качестве цветового кода, так же, как вы можете использовать «k», «синий», «красный» и т. Д.

Я думал о создании словаря солений с позициями и шестнадцатеричными значениями, но я не смог найти никакой информации в документации matplotlib о том, как я могу создать карту цветов для этой конкретной ситуации.

Было бы очень полезно использовать его при построении других графиков, которые также принимают значения DEPT_NAME, поскольку цветовые коды будут согласованы по всем графикам.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 08 января 2019

Если я правильно понимаю, вы хотите использовать имена из вашего фрейма данных в качестве спецификации цвета в matplotlib. Это в принципе возможно, хотя они должны быть в нижнем регистре.

Таким образом, имея фрейм данных как

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

colormap = pd.DataFrame({"name" : ["Analyst", "Local Hero"],
                         "color" : ["#396ab1", "#990011"]})

Вы можете зарегистрировать названия цветов,

colormap["name"] = colormap["name"].apply(lambda x: x.lower())   
c = dict(zip(*colormap.values.T))
mcolors.get_named_colors_mapping().update(c)

и используйте их в matplotlib:

plt.plot([1,2], [1,1], color='analyst')
plt.plot([1,2], [1,2], color="local hero")
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...