【matplotlib】解决中文变成框的显示问题

在MacOS环境下,使用anaconda3/python3.6,通过下载SimHei字体,将其放入matplotlib字体目录,修改matplotlibrc配置文件,取消相应注释并添加SimHei字体,最后在Python中重新加载字体,解决了matplotlib中文显示为方框的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:macos  anaconda3/python3.6

参考:1 matplotlib图例中文乱码?

1 下载中文字体SimHei

2 将下载好的simhei字体文件SimHei.ttf拷贝到matplotlib字体文件夹(matplotlib/mpl-data/fonts/ttf)里

这里要查找你使用的matplotlib的pakage是下载到了哪里,可以在python中通过使用以下方式查询

import  matplotlib
print(matplotlib)

我自己的matplotlib路径是/Users/xxx//anaconda3/lib/python3.6/site-packages/matplotlib/

3 vim修改配置文件matplotlibrc (路径matplotlib/mpl-data)

我自己打开这个配置文件发现全部都是被#注释了的

将下面三行前的#注释去掉,并在font.sans-serif里加上SimHei,axes.unicode_minus配置为False

font.family : sans-serif

fo

### 解决 Matplotlib方框显示或绘制的问题 为了在 Matplotlib 中正确显示或绘制方框,可以采用多种方式来实现这一目标。以下是几种常见的方式: #### 1. 使用 `Rectangle` 类创建矩形方框 通过导入 `matplotlib.patches.Rectangle` 可以方便地向图表中添加矩形方框。 ```python import matplotlib.pyplot as plt from matplotlib.patches import Rectangle fig, ax = plt.subplots() ax.add_patch(Rectangle((0.2, 0.2), 0.4, 0.3, edgecolor='blue', facecolor="none")) plt.show() ``` 此代码片段展示了如何利用 `Rectangle` 方法定义并添加一个蓝色边的透明填充矩形到图形上[^1]。 #### 2. 调整字体设置处理中文乱码问题影响方框样式 如果遇到由于中文字符引起的绘图异常情况,比如方框内的文字变成小方块等问题,则需调整系统的字体配置文件或者指定合适的字体名称给 `rcParams`. 对于 Windows 用户来说,默认情况下可能缺少适合渲染汉字的 TrueType 字体;而对于 Linux 和 macOS 来讲,虽然通常预装了一些支持 CJK (Chinese Japanese Korean) 的字库,但也有可能因为版本差异而导致兼容性问题. 因此建议尝试如下操作: - 安装额外的支持CJK书写体系的文字集; - 修改 `.matplotlib/matplotlibrc` 文件中的相应参数项指向已安装好的合适字体名; 具体命令如下所示: ```bash sudo apt-get install fonts-wqy-microhei # 对于Debian/Ubuntu系统而言 yum install wqy-microhei-fonts # 针对RedHat/CentOS系列发行版 brew tap caskroom/fonts # MacOSX平台下可通过HomeBrew管理器获取开源字体资源 brew cask install font-wqy-microhei # ``` 接着编辑 rc 参数表使之生效: ```python import matplotlib matplotlib.rcParams['font.sans-serif']=['SimHei'] matplotlib.rcParams['axes.unicode_minus']=False ``` 上述措施有助于改善因本地化语言环境造成的视觉效果不佳状况[^4]. #### 3. 清除缓存重置内核状态恢复默认行为模式 当程序报错提到 `_rebuild` 属性缺失时,这往往意味着某些临时数据未能及时更新从而干扰到了正常流程执行过程。此时不妨考虑重启 Python 解释器实例或是 Jupyter Notebook 内核服务端口以便让一切回到最初的状态继续工作下去.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值