matplotlib 做图显示中文: import zhplot - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
huangyezhufeng
V2EX    Python

matplotlib 做图显示中文: import zhplot

  •  1
     
  •   huangyezhufeng
    shenxiangzhuang 2024-11-30 21:17:32 +08:00 7885 次点击
    这是一个创建于 379 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TLDR

    pip install zhplot安装,之后import zhplot即可。

    GitHub 地址

    https://github.com/shenxiangzhuang/zhplot

    为什么

    • 只想做个简单的图,能够正常显示中文
    • 不关心具体字体,不想为了做个图去捣腾系统字体

    示例

    import zhplot import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.title('这是一个标题') plt.xlabel('横坐标') plt.ylabel('纵坐标') plt.show() 
    第 1 条附言    301 天前
    目前已经正式发布 1.0.0 版本,同时增加了对 wordcloud 的中文展示支持。
    21 条回复    2024-12-24 14:07:58 +08:00
    Mianmiss
        1
    Mianmiss  
       2024-11-30 22:24:45 +08:00   1
    挺好,第一次用 matplotlib 为了显示中文折腾了很久
    freefcw
        2
    freefcw  
       2024-11-30 22:37:15 +08:00   1
    给楼主点赞,确实很方便
    fbichijing
        3
    fbichijing  
       2024-11-30 23:06:33 +08:00
    不是两行代码的问题吗......
    huangyezhufeng
        4
    huangyezhufeng  
    OP
       2024-12-01 11:25:33 +08:00
    @fbichijing #3 手动搞,要自己下载字体再指定路径的,够麻烦的了..
    syh2
        5
    syh2  
       2024-12-01 11:42:39 +08:00   1
    前段时间在 Linux 服务器用 Jupyter Lab 确实折腾了很久,这个是我目前看到最快捷的解决方法了,感谢 OP !
    siriussilen
        6
    siriussilen  
       2024-12-01 12:10:47 +08:00   1
    谢谢,工作上很有帮助
    dant
        7
    dant  
       2024-12-01 13:29:18 +08:00   1
    自带中易黑体可能会产生版权问题,可以考虑换成思源黑体或者(如果在意分发大小的话) Droid Sans Fallback
    fbichijing
        8
    fbichijing  
       2024-12-01 14:23:47 +08:00
    @huangyezhufeng

    是我的理解有问题吗?

    ```python
    import matplotlib.pyplot as plt

    # 多两行代码
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False

    plt.plot([1, 2, 3, 4])
    plt.title('这是一个标题')
    plt.xlabel('横坐标')
    plt.ylabel('纵坐标')
    plt.show()
    ```
    huangyezhufeng
        9
    huangyezhufeng  
    OP
       2024-12-01 14:26:49 +08:00
    @dant #7 感谢建议。这个版权问题有相关的资料吗?我之前大概查了了下 Simhei 的一些版权问题,没太找到明确的解释。
    huangyezhufeng
        10
    huangyezhufeng  
    OP
       2024-12-01 14:28:33 +08:00
    @fbichijing #8 代码没问题的。这个前提是操作系统里面已经装了对应的字体。一些 Linux 版本其实没有预装中文字体的。比如上面老哥提到的一些服务器上之类的。
    huangyezhufeng
        11
    huangyezhufeng  
    OP
       2024-12-01 15:15:15 +08:00
    @dant https://github.com/shenxiangzhuang/zhplot/issues/7
    感谢提醒,单独建了个 issue 。然后具体查了下,这个确实可能存在版权问题。然后思源黑体确实是比较好的备选项,不过文件确实有点太大了,然后 Droid Sans Fallback 的版权问题好像也有一丢丢不清晰。查了下目前打算换到 noto-cjk ,这个字体大小可以接受,然后版权看起来也没啥问题。有其他建议可以移步 GitHub 讨论哈~
    JeremyFeng
        12
    JeremyFeng  
       2024-12-02 09:06:34 +08:00   1
    简单易用,感谢开发
    Syiize
        13
    Syiize  
       2024-12-02 09:21:42 +08:00
    可以添加相应的函数,让用户能够设置自己想要使用的字体吗?
    zsk425
        14
    zsk425  
       2024-12-02 10:16:27 +08:00
    能支持 python 3.8 么
    huangyezhufeng
        15
    huangyezhufeng  
    OP
       2024-12-02 10:36:44 +08:00
    @zsk425 这里有必须使用 3.8 的场景吗?因为现在 3.8 已经 EOL 了( https://devguide.python.org/versions/), 所以这里最小支持的版本是 3.9
    huangyezhufeng
        16
    huangyezhufeng  
    OP
       2024-12-02 10:38:22 +08:00
    @Syiize 是说指定字体文件路径这样吗?(如果是系统已有字体,在 matplotlib 直接指定就行) 可以开个 issue 说明一下, 我后面看看加上合不合适。
    zsk425
        17
    zsk425  
       2024-12-02 12:03:17 +08:00
    原来 3.8 已经 EOL 了,那确实没必要支持
    syh2
        18
    syh2  
       356 天前
    OP 你这个包是不是已经不能用了,今天试了一下显示还是乱码,之前倒是可以
    huangyezhufeng
        19
    huangyezhufeng  
    OP
       356 天前
    @syh2 #18 可以提个 issue 贴下具体的环境和复现的代码。我这里测试了新版本也没有复现问题。
    syh2
        20
    syh2  
       356 天前
    @huangyezhufeng #19 可以了,我重新卸载了旧的 matplotlib ,先装 zhplot 然后附带装上 matlpotlib 就 OK 了,感谢~~
    huangyezhufeng
        21
    huangyezhufeng  
    OP
       356 天前
    @syh2 #20 好的。理论上这个安装的顺序是不影响使用的。后续有什么问题也可以反馈,我尽量及时跟进修复。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3217 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 11:24 PVG 19:24 LAX 03:24 JFK 06:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86