Python中使用matplotlib和seaborn绘制函数图像的notebook模板
https://nbviewer.jupyter.org/gist/sorrowise/06cd2af2326256037113f6f27846a047
可能对经常做科学计算,需要绘图的同学有用吧。已经导入了一些常用的库,简单封装了一些接口,能够更有效率的绘制函数图像。
Python中使用matplotlib和seaborn绘制函数图像的notebook模板
8 回复
# 完整的Matplotlib + Seaborn函数绘图模板
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import rcParams
# 1. 全局样式设置
plt.style.use('seaborn-v0_8-darkgrid') # 使用seaborn样式
sns.set_palette("husl") # 设置调色板
rcParams['figure.figsize'] = (10, 6) # 设置图形大小
rcParams['font.size'] = 12
# 2. 创建数据
def func1(x):
"""示例函数1: 正弦函数"""
return np.sin(x)
def func2(x):
"""示例函数2: 指数衰减函数"""
return np.exp(-x) * np.cos(2 * np.pi * x)
# 生成x轴数据
x = np.linspace(0, 4 * np.pi, 500) # 0到4π,500个点
# 3. 创建图形和坐标轴
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))
# 4. 绘制第一个函数
ax1.plot(x, func1(x),
linewidth=2.5,
color='#FF6B6B',
label=r'$y = \sin(x)$')
ax1.set_xlabel('x', fontsize=14)
ax1.set_ylabel('sin(x)', fontsize=14)
ax1.set_title('正弦函数', fontsize=16, fontweight='bold')
ax1.legend(loc='best')
ax1.grid(True, alpha=0.3)
# 5. 绘制第二个函数
ax2.plot(x, func2(x),
linewidth=2.5,
color='#4ECDC4',
label=r'$y = e^{-x} \cos(2\pi x)$')
ax2.set_xlabel('x', fontsize=14)
ax2.set_ylabel('f(x)', fontsize=14)
ax2.set_title('衰减振荡函数', fontsize=16, fontweight='bold')
ax2.legend(loc='best')
ax2.grid(True, alpha=0.3)
# 6. 调整布局
plt.tight_layout()
# 7. 保存图形(可选)
# plt.savefig('function_plot.png', dpi=300, bbox_inches='tight')
# 8. 显示图形
plt.show()
# 9. 3D函数绘图示例(可选)
from mpl_toolkits.mplot3d import Axes3D
# 创建3D数据
X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 绘制3D图形
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, Z,
cmap='viridis',
alpha=0.8,
linewidth=0,
antialiased=True)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('3D函数: sin(sqrt(x² + y²))')
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
这个模板包含了:
- 样式配置 - 使用seaborn美化图形
- 数据生成 - 使用numpy创建函数数据
- 子图系统 - 支持多图对比
- 完整参数 - 标签、标题、图例、网格
- 3D绘图 - 可选的三维函数可视化
- 保存功能 - 注释掉的保存代码
直接复制到Jupyter Notebook中运行即可,替换函数定义和数据范围就能绘制自己的函数图像。
一句话建议:用这个模板快速绘制高质量函数图。
mark
matplotlib 加 seaborn 绘出来的图确实比 matlab 的好看多了,能有一拼的估计只有 ggplot 了
近几年都没用过 matlab 了
之前看过这个,借鉴了几行代码
绘图风格感觉和 Mathematica 挺像的


