pm4py、graphviz绘图中文乱码问题

最近使用pm4py画流程图,结果是中文乱码,汉字都是“四条”麻将。
pm4py是用graphviz画图的,默认不支持中文的,需要设置中文字体。
解决办法如下:
深入到pydotplus包里找到graphviz.py文件,找到Node类,

class Node(Common):
    """A graph node.

    This class represents a graph's node with all its attributes.

    node(name, attribute=value, ...)

    name: node's name

    All the attributes defined in the Graphviz dot language should
    be supported.
    """

    def __init__(self, name='', obj_dict=None, **attrs):

        if obj_dict is not None:
            self.obj_dict = obj_dict
        else:
            self.obj_dict = dict()
            self.obj_dict['attributes'] = dict(attrs)
            self.obj_dict['type'] = 'node'
            self.obj_dict['parent_graph'] = None
            self.obj_dict['parent_node_list'] = None
            self.obj_dict['sequence'] = None

在else块后加上

self.obj_dict['attributes']["fontname"] ="FangSong"

这样就能设置好字体了。

附:Windows系统中文字体的英文名

新細明體:PMingLiU
細明體:MingLiU
標楷體:DFKai-SB
黑体:SimHei
宋体:SimSun
新宋体:NSimSun
仿宋:FangSong
楷体:KaiTi
仿宋_GB2312:FangSong_GB2312
楷体_GB2312:KaiTi_GB2312
微軟正黑體:Microsoft JhengHei
微软雅黑体:Microsoft YaHei

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值