📜  从 jupyter notebook 保存图像 - Python (1)

📅  最后修改于: 2023-12-03 15:06:31.704000             🧑  作者: Mango

从 Jupyter Notebook 保存图像 - Python

在使用 Jupyter Notebook 进行数据分析或机器学习等任务时,我们有时需要将图像保存下来,以便后续使用或分享给他人。本文将介绍如何从 Jupyter Notebook 中使用 Python 代码保存图像。

1. Matplotlib

Matplotlib 是 Python 中常用的绘图库,可以用于绘制各种类型的图表,例如线图、散点图、柱状图等。通过 Matplotlib,我们可以很方便地将图像保存为图片文件。

以下是一个简单的示例,演示如何在 Jupyter Notebook 中使用 Matplotlib 绘制一张简单的折线图,并将其保存为图片文件:

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘制图像
plt.plot(x, y)

# 保存图像为 PNG 格式
plt.savefig('output.png', dpi=300, bbox_inches='tight')

上述代码先生成了一个包含 100 个元素的一维数组 x,以及对应的正弦值数组 y。然后使用 plt.plot() 方法绘制了一张包含这些数据的折线图。最后,使用 plt.savefig() 方法将图像保存为一个名为 output.png 的 PNG 图片文件。其中 dpi=300 表示设置输出图像的 DPI,bbox_inches='tight' 表示自动裁剪图像周围多余的空白部分。

2. Seaborn

Seaborn 是一个基于 Matplotlib 的高级数据可视化库,可以帮助我们快速、美观地绘制各种类型的图表。Seaborn 的 API 设计更加简单,可以轻松地将数据与可视化元素映射起来。在使用 Seaborn 绘制图像时,同样可以使用 Matplotlib 的方法将图像保存为图片文件。

以下是一个示例,演示如何使用 Seaborn 绘制一张简单的散点图,并将其保存为图片文件:

import seaborn as sns

# 加载示例数据集
tips = sns.load_dataset('tips')

# 绘制散点图
sns.scatterplot(x='total_bill', y='tip', data=tips)

# 保存图像为 JPG 格式
plt.savefig('output.jpg', dpi=300, bbox_inches='tight')

上述代码使用 sns.load_dataset() 方法加载了 Seaborn 提供的餐厅小费数据集,并使用 sns.scatterplot() 方法绘制了一个以账单金额为 x 轴,小费金额为 y 轴的散点图。最后,使用 Matplotlib 的 plt.savefig() 方法保存图像为一个名为 output.jpg 的 JPG 图片文件。

3. Bokeh

Bokeh 是一个交互式数据可视化库,可以帮助我们在 Web 应用程序中创建漂亮的、交互式的图形界面。在使用 Bokeh 绘制图形时,我们可以使用 save() 方法将绘制的图形保存为 HTML 文件或其它支持的文件格式。

以下是一个示例,演示如何使用 Bokeh 绘制一张简单的柱状图,并将其保存为 HTML 文件:

from bokeh.plotting import figure, output_file, save

# 创建一个绘图对象
p = figure(x_range=['a', 'b', 'c'], plot_height=250)

# 添加数据
p.vbar(x=['a', 'b', 'c'], top=[1, 2, 3], width=0.9)

# 指定输出文件名
output_file('output.html')

# 保存图像为 HTML 文件
save(p)

上述代码首先使用 Bokeh 提供的 figure() 方法创建了一个新的绘图对象,然后使用 vbar() 方法添加了三个柱状图。接下来,使用 output_file() 方法指定输出文件名为 output.html,最后使用 save() 方法将绘制的图形保存为该文件。

总结

本文介绍了如何从 Jupyter Notebook 中使用 Python 代码保存图像,主要分为三个部分:Matplotlib、Seaborn 和 Bokeh。通过这些库,我们可以方便、快捷、美观地将数据可视化,为数据分析和机器学习等任务提供便利。