【问题标题】:Displaying PNG in matplotlib.pyplot framework in python 2.7在 python 2.7 的 matplotlib.pyplot 框架中显示 PNG
【发布时间】: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


    【解决方案1】:

    如果您将图像字符串表示在变量string_rep 中,则以下代码应该可以工作。

    from io import BytesIO
    
    import matplotlib.image as mpimage
    import matplotlib.pyplot as plt
    
    with BytesIO(string_rep.decode('base64')) as byte_rep:
        image = mpimage.imread(byte_rep)
    
    plt.imshow(image)
    

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      相关资源
      最近更新 更多