Matplotlib 的字体参数设置方法(MAC OSX)

我们在使用Python进行绘制函数图时,如果标题使用汉字,或者是坐标轴再或者是说明使用汉字,就会有可能出现乱码。

解决方法很简单,不用下载任何第三方字体(让下字体的估计里面埋了特洛伊)。可以再matplotlib中设置,使用电脑自带的字体就可以了。

首先是要确认你电脑上支持的字体:

python 复制代码
from matplotlib import pyplot as plt
import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for i in a:
    print(i)

输出结果:

Gurmukhi MN

Gurmukhi MT

Gurmukhi Sangam MN

Heiti TC

Heiti TC

Helvetica

Helvetica Neue

Herculanum

Hiragino Maru Gothic Pro

Hiragino Mincho ProN

Hiragino Sans

Hiragino Sans

Hiragino Sans

Hiragino Sans

Hiragino Sans

Hiragino Sans

Hiragino Sans

Hiragino Sans

这里我就选一个比较常见的"Heiti TC"

这样设置:

python 复制代码
plt.rcParams['font.family'] = 'Heiti TC'  # 替换为你选择的字体

作图的源代码如下:

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

plt.rcParams['font.family'] = 'Heiti TC'  # 替换为你选择的字体

# 1. 定义Michaelis-Menten方程
def michaelis_menten(s, Vmax, Km):
    return (Vmax * s) / (Km + s)

# 2. 生成模拟数据(添加高斯噪声)
np.random.seed(42)
S = np.linspace(0, 100, 50)  # 底物浓度0-100
Vmax_true, Km_true = 50.0, 10.0  # 真实参数
v_noise = np.random.normal(0, 3, len(S))  # 噪声
v_observed = michaelis_menten(S, Vmax_true, Km_true) + v_noise

# 3. 使用非线性最小二乘拟合
params, cov = curve_fit(michaelis_menten, S, v_observed, p0=[30, 5])
Vmax_fit, Km_fit = params

# 4. 结果可视化
plt.figure(figsize=(10, 6))
plt.scatter(S, v_observed, color='blue', label='观测数据 (含噪声)')
plt.plot(S, michaelis_menten(S, Vmax_true, Km_true), 
         'k--', lw=2, label=f'真实曲线: $V_{{\max}}$={Vmax_true}, $K_m$={Km_true}')
plt.plot(S, michaelis_menten(S, Vmax_fit, Km_fit), 
         'r-', lw=2, label=f'拟合曲线: $V_{{\max}}$={Vmax_fit:.1f}, $K_m$={Km_fit:.1f}')

plt.axhline(y=Vmax_fit, color='gray', linestyle=':', alpha=0.7)
plt.axvline(x=Km_fit, color='gray', linestyle=':', alpha=0.7, 
            label=f'$K_m$位置 ($v=V_{{\max}}/2$)')

plt.title('Michaelis-Menten方程模拟与拟合', fontsize=14)
plt.xlabel('底物浓度 [S]', fontsize=12)
plt.ylabel('反应速率 v', fontsize=12)
plt.legend()
plt.grid(alpha=0.3)
plt.show()
相关推荐
想会飞的蒲公英9 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel10 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记10 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名10 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code11 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook11 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
我的xiaodoujiao13 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_4080996714 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing14 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
赶紧写完去睡觉15 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda