如何在Python Graphviz包中为节点设置RGB/十六进制自定义颜色
Python Graphviz数值颜色设置方法
Python Graphviz包完全支持数值编码自定义节点颜色,你遇到报错是因为传入的颜色参数格式不符合Graphviz的语法要求。
常用的数值颜色正确写法如下:
- 十六进制颜色:直接传入以
#开头、后接6位十六进制数值的字符串即可,支持RGB和带透明度的RGBA(8位)格式。你需要的RGB(50,50,50)对应的十六进制为#323232,示例代码如下:
from graphviz import Digraph g = Digraph('example_graph') g.node('Test Node', color='#323232')
- 十进制RGB颜色:需要传入格式为
rgb(r,g,b)的字符串,三个数值范围为0-255,示例代码如下:
from graphviz import Digraph g = Digraph('example_graph') g.node('Test Node', color='rgb(50,50,50)')
如果需要设置颜色透明度,还可以使用#RRGGBBAA格式的8位十六进制字符串,或者rgba(r,g,b,a)格式的字符串,其中a为0-1之间的透明度数值。
错误原因说明
- 直接传入RGB元组会触发类型报错,因为graphviz的颜色参数仅接受字符串类型输入
- 直接将元组转为字符串
'(50, 50, 50)'不符合Graphviz的颜色语法规则,底层引擎无法识别为有效颜色,因此会抛出未知颜色警告, fallback为默认黑色。
内容的提问来源于stack exchange,提问作者Galen
相关产品推荐
相关产品推荐

