2016-09-16 4 views
1

Jupyter Notebooks에서 PNG 이미지를 가져 와서 matplotib.pyplot.plt이 아닌 IPython.display.Image으로 표시되도록 관리하고 있습니다. 내가 뭘 놓치고 있니? 파이썬 2.7을 사용합니다.Python의 matplotlib.pyplot 프레임 워크에서 PNG 표시 2.7

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) 
: 사용 나는 그것을에서 PNG로 정보를 가져 관련 cell 정보를 검색 한 후

import nbformat 
notebook_ = nbformat.read(file_notebook, 4) 

: 내가 노트북 JSON 컨텐츠를 열려면

: 나는 다음과 같은 알고리즘을 사용하고

cell_image (유니 코드)의 처음 몇 글자는 다음과 같습니다.

내 질문에

from IPython.display import Image 
Image(cell_image) 

그리고 지금를 사용하여 내 Jupityer 노트북에서

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 

내가 쉽게 그릴 수 는 :

어떻게 plt.subplot 친화적으로 cell_image를 조작 할 수 있습니까? (가정하면 import matplotlib.pyplot as plt). plt.imshow은 내 경우가 아닌 배열을 필요로하기 때문에 작동하지 않는다는 것을 알고 있습니다 (이는 이해할 수있는 한 문자열입니다).

답변

2

이미지 문자열 표현이 변수 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)