Установите пользовательский цвет узла с помощью пакета Python Graphviz

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