Python中使用matplotlib和seaborn绘制函数图像的notebook模板

https://nbviewer.jupyter.org/gist/sorrowise/06cd2af2326256037113f6f27846a047

可能对经常做科学计算,需要绘图的同学有用吧。已经导入了一些常用的库,简单封装了一些接口,能够更有效率的绘制函数图像。


Python中使用matplotlib和seaborn绘制函数图像的notebook模板

8 回复

good,学习一下


# 完整的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()

这个模板包含了:

  1. 样式配置 - 使用seaborn美化图形
  2. 数据生成 - 使用numpy创建函数数据
  3. 子图系统 - 支持多图对比
  4. 完整参数 - 标签、标题、图例、网格
  5. 3D绘图 - 可选的三维函数可视化
  6. 保存功能 - 注释掉的保存代码

直接复制到Jupyter Notebook中运行即可,替换函数定义和数据范围就能绘制自己的函数图像。

一句话建议:用这个模板快速绘制高质量函数图。

matplotlib 加 seaborn 绘出来的图确实比 matlab 的好看多了,能有一拼的估计只有 ggplot 了

近几年都没用过 matlab 了

之前看过这个,借鉴了几行代码

绘图风格感觉和 Mathematica 挺像的

回到顶部