mac Anaconda matplotlib 中文乱码问题

本文介绍如何解决Mac环境下使用Anaconda和Matplotlib时出现的中文乱码问题。通过准备中文字体、清除字体缓存、添加字体到Matplotlib配置文件中,并重启Anaconda等步骤,最终实现图表中正确显示中文。
部署运行你感兴趣的模型镜像

mac Anaconda matplotlib 中文乱码问题

GIthub地址,本文中用到的资源下载地址

这里所有的操作都是以黑体字体为例

一. 准备一个中文字体

二. 清除字体缓存

MAC默认的缓存目录

    ~/.matplotlib/

三. 添加字体到 matplotlib

1. 添加字体文件 matplotlib的默认安装目录在

    /anaconda2/lib/python2.7/site-packages/matplotlib/mpl-data

把字体放在相应的目录fonts/ttf中即可

2. 编辑配置文件 matplotlibrc

找到 font.sans-serif,默认情况下配置如下:

    #font.sans-serif     :DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

修改为:

    font.sans-serif     : SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid,  Arial, Helvetica, Avant Garde, sans-serif

其中 SimHei,为我们准备的中文字体

四重启 Anaconda

然后在代码中添加下边语句

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-

重新运行代码即可在图标中显示中文

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 解决 AnacondaMac 上运行时图表无法显示中文问题 在解决 AnacondaMatplotlib 图表无法正确显示中文问题时,可以采用以下两种方案:临时方案和永久方案。 #### 临时方案 在每次绘制图表时,可以通过设置 `matplotlib` 的参数来确保中文正常显示。具体代码如下: ```python import matplotlib.pyplot as plt # 设置图表大小 plt.rcParams['figure.figsize'] = (15.0, 8.0) # 固定显示大小 # 设置字体为 SimHei(黑体),以支持中文显示 plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文问题 # 解决负号显示问题 plt.rcParams['axes.unicode_minus'] = False # 显示负号 ``` 上述代码需要在每次绘图前执行,虽然有效但略显繁琐[^1]。 #### 永久方案 为了实现更高效的解决方案,可以通过安装并配置中文字体(如 SimHei)到 Matplotlib 的配置文件中,从而避免每次绘图时手动设置。 1. **下载 SimHei 字体** 下载地址:https://us-logger1.oss-cn-beijing.aliyuncs.com/SimHei.ttf。 2. **查找 Matplotlib 配置文件路径** 使用以下代码获取 Matplotlib 的配置文件路径: ```python import matplotlib print(matplotlib.matplotlib_fname()) ``` 示例输出路径可能类似于 `/Users/username/opt/anaconda3/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc`[^2]。 3. **将 SimHei 字体放置到指定目录** 将下载的 `SimHei.ttf` 文件复制到 Matplotlib 的字体目录中,通常位于 `.../mpl-data/fonts/ttf/`。 4. **验证配置** 完成字体安装后,运行以下代码测试是否能够正确显示中文: ```python import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体 plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题 a = np.arange(10) plt.xlabel('横坐标') plt.ylabel('纵坐标') plt.plot(a, a * 1.5, a, a * 2.5, a, a * 3.5, a, a * 4.5) plt.show() ``` 如果图表中的中文能够正常显示,则说明配置成功[^3]。 #### 常见问题及解决方案 如果仍然遇到中文显示为方框或乱码的情况,可能是由于字体未正确加载或系统环境问题。以下是常见原因及解决方法: - **字体未正确安装**:检查 `SimHei.ttf` 是否已正确放置到 Matplotlib 的字体目录。 - **Matplotlib 缓存问题**:尝试清除 Matplotlib 的缓存,重新启动 Jupyter Notebook 或 Python 环境[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值