【发布时间】:2017-01-25 03:07:55
【问题描述】:
我正在从 Jupyter Notebooks 中提取 PNG 图像,并设法使用 IPython.display.Image 显示,但不能使用 matplotib.pyplot.plt 显示。我错过了什么?我使用 python 2.7。
我正在使用以下算法:
打开笔记本 JSON 内容:
import nbformat
notebook_ = nbformat.read(file_notebook, 4)
在检索到相关的cell 信息后,我使用以下方法从中提取 png 信息:
def cell_to_image(cell, out_value_item_number=1):
if "execution_count" in cell.keys(): # i.e version >=4
return cell["outputs"][out_value_item_number]['data']['image/png']
elif "prompt_number" in cell.keys(): # i.e version < 4
return cell["outputs"][out_value_item_number]['png']
return None
cell_image = cell_to_image(cell)
cell_image(unicode)的前几个字符看起来像:
iVBORw0KGgoAAAANSUhEUgAAA64AAAFMCAYAAADLFeHSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n
AAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8jef/x/HXyTjZiYQkCGrU3ruR0tr9oq2qGtGo0dbe
\nm5pVlJpFUSMoVb6UoEZ/lCpatWuPUiNEEiMDmef3R75OexonJKUO3s/HI4/mXPd1X/d1f+LRR965
\n7/u6DSaTyYSIiIiIiIiIjbJ70hMQERERERERyYiCq4iIiIiIiNg0BVcRERERERGxaQquIiIiIiIi
\nYtMUXEVERERERMSmKbiKiIiIiIiITVNwFRGRxyIkJIRixYqxfv36+24/e/YsxYoVo3jx4v/yzGxb
\naGgoderUIS4uDoBdu3bRsmVLKlasyCuvvMKgQYOIjo622CcsLIyGDRtSunRp6tSpw8KFC62OW7p0
\naRo2bJju53Lnzh1GjRrFyy+/TNmyZWnRogW//fbbQ835q6++olGjRpQvX5769eszc+ZMkpOTzdtT
\nU1OZNGkSNWrUoHTp0jRp0oTdu3enGyc2NpZOn
我可以轻松地在我的 Jupityer 笔记本中使用
from IPython.display import Image
Image(cell_image)
现在我的问题是:
如何操纵cell_image 使plt.subplot 友好?
(假设import matplotlib.pyplot as plt)。
我意识到plt.imshow 不起作用,因为这需要一个数组,这不是我的情况(据我所知,这是一个字符串)。
【问题讨论】:
标签: python-2.7 matplotlib base64 png jupyter-notebook