Matplotlib - 中文字体

本文介绍了如何在Matplotlib中显示中文。由于Matplotlib默认不支持中文,我们需要自行下载中文字体,例如思源黑体。下载后,将字体文件放置在代码执行目录,并在代码中指定使用该字体,从而实现中文的正确显示。
部署运行你感兴趣的模型镜像

title: Matplotlib - 中文字体
categories:

  • python
  • Matplotlib
    tags:
  • python
  • Matplotlib
  • Computer Drawing

首先,Matplotlib本身是不支持中文的。
因此我们需要自己下载中文字体;

方法:
使用思源黑体,思源黑体是 Adobe 与 Google 推出的一款开源字体。
下载地址:
官网:https://source.typekit.com/source-han-serif/cn/

Github地址:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese

在这里插入图片描述
可以下载个 OTF 字体,比如 SourceHanSansSC-Bold.otf,将该文件文件放在当前执行的代码文件中:

在这里插入图片描述

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
from matplotlib.font_manager import FontProperties
# fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径
zhfont1 = FontProperties(fname="SourceHanSansSC-Bold.otf",size = 15)

x = np.arange(1, 11)
y = 2 * x + 5
plt.title("测试", fontproperties=zhfont1)

# fontproperties 设置中文显示,fontsize 设置字体大小
plt.xlabel("x 轴", fontproperties=zhfont1)
plt.ylabel("y 轴", fontproperties=zhfont1)
plt.plot(x, y)
plt.show()

运行结果:
在这里插入图片描述

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

Python3.8

Python3.8

Conda
Python

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

<think> 我们遇到了依赖冲突问题,通常发生在安装特定版本的包时,由于其他已安装包对同一依赖有不同版本要求而导致。 用户要求安装: matplotlib-inline==0.2.1 matplotlib==3.7.1 但遇到了与已安装的d2l和scipy的冲突。 解决思路: 1. 尝试升级pip和setuptools(有时能解决依赖解析问题)[^1] 2. 使用pip的--upgrade选项尝试升级冲突的包(如scipy)到兼容版本 3. 如果冲突无法解决,考虑创建新的虚拟环境(推荐)以避免现有环境包版本混乱 具体步骤: 步骤1:升级pip和setuptools ```bash python -m pip install -U pip setuptools ``` 步骤2:尝试安装指定版本的matplotlibmatplotlib-inline,并同时升级scipy(因为scipy可能依赖于旧版本的matplotlib) ```bash pip install --upgrade scipy pip install matplotlib==3.7.1 matplotlib-inline==0.2.1 ``` 步骤3:如果仍冲突,尝试同时安装所有包,让pip自动解决依赖(可能升级或降级一些包) ```bash pip install matplotlib==3.7.1 matplotlib-inline==0.2.1 scipy --upgrade ``` 步骤4:如果步骤3失败,考虑使用虚拟环境(推荐) 创建新环境(以conda为例,若用户使用conda): ```bash conda create -n d2l_fixed python=3.9 conda activate d2l_fixed ``` 然后在新环境中安装所需包,由于新环境没有旧包,可以避免冲突: ```bash pip install d2l # 这会安装d2l及其依赖(包括合适版本的matplotlibmatplotlib-inline) # 如果d2l安装的matplotlib版本不是3.7.1,可以尝试强制安装指定版本 pip install matplotlib==3.7.1 matplotlib-inline==0.2.1 # 检查scipy是否安装,如果没有则安装 pip install scipy ``` 步骤5:如果用户不想用虚拟环境,且上述步骤无法解决,可以尝试先卸载冲突的包再安装 ```bash pip uninstall -y matplotlib matplotlib-inline scipy pip install matplotlib==3.7.1 matplotlib-inline==0.2.1 scipy ``` 注意:卸载scipy可能会导致依赖它的包(如d2l)功能异常,所以最好在虚拟环境中操作。 验证安装: ```python import matplotlib print(matplotlib.__version__) # 应为3.7.1 import matplotlib_inline print(matplotlib_inline.__version__) # 应为0.2.1 import scipy print(scipy.__version__) ``` 最后,如果用户使用Jupyter Notebook,记得在新环境安装ipykernel并添加到Jupyter中: ```bash pip install ipykernel python -m ipykernel install --user --name d2l_fixed --display-name "d2l_fixed" ``` 这样可以在Notebook中选择新环境的内核。 引用说明: [^1] 参考了用户提供的引用中关于升级pip和setuptools的建议。 相关问题: 1. 如何查看当前环境中已安装包及其版本? 2. 如何彻底卸载Python包及其依赖? 3. 虚拟环境与全局环境有何优缺点? 4. 如何解决多个项目依赖冲突问题的最佳实践? </think> ### 解决依赖冲突问题的分步指南 当安装 `matplotlib-inline==0.2.1` 和 `matplotlib==3.7.1` 时出现依赖冲突(特别是与 d2l 和 scipy 的冲突),可按照以下步骤解决: #### 🛠️ 解决方案 1:升级冲突包(推荐) ```bash # 先升级pip和setuptools(参考引用[1]) python -m pip install -U pip setuptools # 升级所有冲突包到兼容版本 pip install --upgrade d2l scipy numpy # 再安装指定版本matplotlib pip install matplotlib==3.7.1 matplotlib-inline==0.2.1 ``` #### ⚙️ 解决方案 2:依赖约束安装 ```bash # 使用约束安装确保版本兼容性 pip install "d2l>=1.0.0" "scipy>=1.6.0" \ matplotlib==3.7.1 \ matplotlib-inline==0.2.1 \ --upgrade ``` #### 📦 解决方案 3:创建纯净虚拟环境(彻底解决) ```bash # 创建新环境 python -m venv fixed_env source fixed_env/bin/activate # Linux/Mac fixed_env\Scripts\activate # Windows # 安装兼容组合(参考引用[2]) pip install d2l matplotlib==3.7.1 matplotlib-inline==0.2.1 scipy ``` #### 🔍 验证安装 ```python # 测试环境兼容性 import matplotlib import matplotlib_inline import scipy import d2l print(f"matplotlib: {matplotlib.__version__}") # 应为 3.7.1 print(f"matplotlib-inline: {matplotlib_inline.__version__}") # 应为 0.2.1 print(f"scipy: {scipy.__version__}") # 应 ≥1.6.0 ``` #### ⚠️ 注意事项 1. **Windows 用户**:若出现权限问题,以管理员身份运行命令行 2. **Anaconda 环境**:优先使用 `conda install` 管理包 3. **网络问题**:可添加 `-i https://pypi.tuna.tsinghua.edu.cn/simple` 使用国内镜像 > 升级后若出现中文显示问题,可参考引用[2]配置中文字体: > ```python > plt.rcParams['font.family'] = 'SimHei' # Windows中文字体 > ``` #### 💡 冲突原因分析 依赖冲突通常由以下原因引起: 1. **d2l 版本过旧**:旧版 d2l 依赖 matplotlib<3.6 2. **scipy 版本限制**:scipy<1.6 与 matplotlib 3.7+ 存在接口不兼容 3. **依赖树锁定**:pip 的依赖解析器在复杂环境中易出错 通过升级关键包或使用纯净环境可有效解决[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值