You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Graphviz图表在GitHub无法正常显示拉丁及中文字符

解决Graphviz生成图表在GitHub显示中文乱码的问题

问题根源

你添加的# -*- coding: utf-8 -*-是Python文件的编码声明,和Graphviz渲染图表时的字体编码无关。乱码的核心原因是:

  • 你使用的verdana字体不支持中文字符
  • GitHub渲染Graphviz生成的SVG时,不会自动加载本地中文字体,导致中文用默认无中文字体显示为乱码

具体解决方案

方案1:更换为GitHub支持的中文字体

直接把代码中的字体替换为GitHub渲染环境自带支持的通用中文字体,比如思源黑体(Noto Sans SC)或微软雅黑(Microsoft YaHei)。修改后的代码如下:

from graphviz import Digraph
h = Digraph("Shu")
# 替换为支持中文的字体
h.attr(rankdir="LR", fontname="Noto Sans SC")

with h.subgraph(name='cluster_wu') as c:
    c.attr(label='5 Shu antigos 五輸穴', style='rounded,filled', color='blanchedalmond', fontname="Noto Sans SC")
    c.node_attr.update(style='filled', color='white', fontname="Noto Sans SC")
    c.node('a1','Poço\n井穴', color='white')
    c.node('a2',"Manancial\n滎穴", color='lightgray')
    c.node('a3',"Riacho\n輸穴", color='darkgray')
    c.node('a4',"Rio\n經穴", color='gray40')
    c.node('a5',"Mar\n合穴", color='gray20', fontcolor='white')
    c.edges([('a1', 'a2'), ('a2', 'a3'), ('a3', 'a4'), ('a4', 'a5')])
h

方案2:生成PNG格式图表(更稳妥)

SVG是矢量图,依赖外部字体环境;PNG是位图,字体直接嵌入到图片中,GitHub显示不会有字体兼容问题。修改代码指定生成PNG格式:

from graphviz import Digraph
from IPython.display import Image

h = Digraph("Shu")
h.attr(rankdir="LR", fontname="Noto Sans SC")

with h.subgraph(name='cluster_wu') as c:
    c.attr(label='5 Shu antigos 五輸穴', style='rounded,filled', color='blanchedalmond')
    c.node_attr.update(style='filled', color='white')
    c.node('a1','Poço\n井穴', color='white')
    c.node('a2',"Manancial\n滎穴", color='lightgray')
    c.node('a3',"Riacho\n輸穴", color='darkgray')
    c.node('a4',"Rio\n經穴", color='gray40')
    c.node('a5',"Mar\n合穴", color='gray20', fontcolor='white')
    c.edges([('a1', 'a2'), ('a2', 'a3'), ('a3', 'a4'), ('a4', 'a5')])

# 生成PNG文件,cleanup=True自动删除中间dot文件
h.render('shu_chart', format='png', cleanup=True)
# 在Notebook中显示PNG,GitHub打开时直接加载图片
Image('shu_chart.png')

补充说明

  • 若本地没有Noto Sans SC字体,可先安装,或换成Windows系统自带的Microsoft YaHei
  • 方案2生成的PNG文件需和Notebook一同上传到GitHub,确保文件路径正确

内容的提问来源于stack exchange,提问作者Rodrigo Sze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:15:42