#python #colors #graphviz
Вопрос:
Пакет Python graphviz позволяет устанавливать цвет узла в качестве строкового аргумента.
from graphviz import Digraph
g = Digraph('example_graph')
g.node('Test Node', color='green')
Я хотел бы указать цвет, который использует точное числовое кодирование, такое как RGB или шестнадцатеричные коды. Если я попробую следующее
from graphviz import Digraph
g = Digraph('example_graph')
g.node('Test Node', color=(50, 50, 50))
Я получаю сообщение об ошибке:
TypeError: expected string or bytes-like object
Аналогично я попытался установить кортеж в виде строки:
from graphviz import Digraph
g = Digraph('example_graph')
g.node('Test Node', color='(50, 50, 50)')
что привело к появлению этого предупреждения, и диаграмма по умолчанию выглядит черной.
Warning: (50, 50, 50) is not a known color.
Мне непонятно, какие возможные аргументы разрешены, и поиск в документах по «цвету» не выявил никаких примеров, кроме простых именованных цветов.
Возможно ли это с помощью пакета Python graphviz или может потребоваться только небольшой выбор именованных цветов?
Комментарии:
1. Дикое предположение: вы пробовали
color='#505050'
2. @albert Твоя догадка работает. Я приму это как ответ, если вы опубликуете его как один.
Ответ №1:
Я поднял проблему Github с сопровождающими пакета. Они были достаточно любезны, чтобы добавить colors.py
пример в свою документацию.
Один из подходов из их примеров с использованием RGB заключается в следующем.
import graphviz
g = graphviz.Graph('colors')
g.node('RGB: #40e0d0', style='filled', fillcolor='#40e0d0')
g.view()