python中使用graphviz时,如果出现中文乱码,多半是因为没有设置fontname为支持中文显示的字体,只需要把node或者edge的fontname="Microsoft YaHei",即可正常显示:

from graphviz import Digraph

digraph=Digraph("中文图片")

digraph.node(name="a",label="木",color="#00CD66",style="filled",fontcolor="white",fontname="Microsoft YaHei")
digraph.node(name="b",label="火",color="#FF4500",style="filled",fontcolor="white",fontname="Microsoft YaHei")
digraph.node(name="c",label="土",color="#CD950C",style="filled",fontcolor="white",fontname="Microsoft YaHei")
digraph.node(name="d",label="金",color="#FAFAD2",style="filled",fontcolor="#999999",fontname="Microsoft YaHei")
digraph.node(name="e",label="水",color="#00BFFF",style="filled",fontcolor="white",fontname="Microsoft YaHei")

digraph.edge("a","b",label="木生火",color="#FF6666",fontcolor="#FF6666",fontname="Microsoft YaHei")
digraph.edge("b","c",label="火生土",color="#FF6666",fontcolor="#FF6666",fontname="Microsoft YaHei")
digraph.edge("c","d",label="土生金",color="#FF6666",fontcolor="#FF6666",fontname="Microsoft YaHei")
digraph.edge("d","e",label="金生水",color="#FF6666",fontcolor="#FF6666",fontname="Microsoft YaHei")
digraph.edge("e","a",label="水生木",color="#FF6666",fontcolor="#FF6666",fontname="Microsoft YaHei")

digraph.edge("a","c",label="木克土",color="#333333",fontcolor="#333333",fontname="Microsoft YaHei")
digraph.edge("c","e",label="土克水",color="#333333",fontcolor="#333333",fontname="Microsoft YaHei")
digraph.edge("e","b",label="水克火",color="#333333",fontcolor="#333333",fontname="Microsoft YaHei")
digraph.edge("b","d",label="火克金",color="#333333",fontcolor="#333333",fontname="Microsoft YaHei")
digraph.edge("d","a",label="金克木",color="#333333",fontcolor="#333333",fontname="Microsoft YaHei")

digraph.view()

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐