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 · 7873 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条附言  ·  293 天前
    目前已经正式发布 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  
       349 天前
    OP 你这个包是不是已经不能用了,今天试了一下显示还是乱码,之前倒是可以
    huangyezhufeng
        19
    huangyezhufeng  
    OP
       349 天前
    @syh2 #18 可以提个 issue 贴下具体的环境和复现的代码。我这里测试了新版本也没有复现问题。
    syh2
        20
    syh2  
       348 天前
    @huangyezhufeng #19 可以了,我重新卸载了旧的 matplotlib ,先装 zhplot 然后附带装上 matlpotlib 就 OK 了,感谢~~
    huangyezhufeng
        21
    huangyezhufeng  
    OP
       348 天前
    @syh2 #20 好的。理论上这个安装的顺序是不影响使用的。后续有什么问题也可以反馈,我尽量及时跟进修复。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5688 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:02 · PVG 11:02 · LAX 19:02 · JFK 22:02
    ♥ Do have faith in what you're doing.