您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

matplotlib – iPython notebook:如何防止在imshow()上输出图像?

5b51 2022/1/14 8:20:21 python 字数 6717 阅读 446 来源 www.jb51.cc/python

我和matplotlib一起使用了很多i Python笔记本,虽然很多情况下我很高兴它会在我调用imshow时自动显示图像()有时候我想阻止这种行为. 具体来说,我循环遍历一个非常大的数组,并在matplotlib中为每个应保存到磁盘的元素生成一个数字.作为该图形创建的一部分,我必须调用imshow()将现有图像(在我的情况下是地图的屏幕截图)绘制到轴上,以便稍后在其上绘制其他材料.每当我将ims

概述

具体来说,我循环遍历一个非常大的数组,并在matplotlib中为每个应保存到磁盘的元素生成一个数字.作为该图形创建的一部分,我必须调用imshow()将现有图像(在我的情况下是地图的屏幕截图)绘制到轴上,以便稍后在其上绘制其他材料.每当我将imshow作为流程的一部分调用时,最终的数字在iPython笔记本中内嵌显示,我该如何防止这种情况?

我的代码看起来像这样:

import matplotlib as plt
fig = plt.pyplot.figure(figsize=(20,20))
im2 = plt.pyplot.imread('/some/dir/fancy-map.png')

# Magic to calculate points,x_min etc.

fig.clf()
ax = fig.gca(xlim=(x_min,x_max),ylim=(y_min,y_max))
ax.imshow(im2,extent=(4,4.5746,42.5448,43.3791),aspect=1.5)
raster = ax.imshow(points,vmin = 0,vmax=maxval,extent=(x_min,x_max,y_min,y_max),aspect=1.5,origin='lower')
fig.colorbar(raster)
ax.set_title('coordinates plot')

fig.savefig("fancy-annotated-map.png",bBox_inches=0)
# Obvs add arguments so you can pass in your data and plot choices.
def make_img():
    pylab.ioff()

    import matplotlib as plt
    fig = plt.pyplot.figure(figsize=(20,20))
    im2 = plt.pyplot.imread('/some/dir/fancy-map.png')

    # Magic to calculate points,x_min etc.

    fig.clf()
    ax = fig.gca(xlim=(x_min,y_max))
    ax.imshow(im2,aspect=1.5)
    raster = ax.imshow(points,origin='lower')
    fig.colorbar(raster)
    ax.set_title('coordinates plot')
    fig.savefig("fancy-annotated-map.png",bBox_inches=0)

    pylab.ion()

>这假设您仅在IPython中使用该函数,否则始终导入pylab.更好地包装尝试…除了它周围所以该功能可以在别处使用.
>看看the template for making your own IPython Magic functions(%或%%函数调用,如%cpaste).一个很好的方法是创建你自己的魔法,比如%imnoshow或其他东西,它只包含调用imshow的部分,这样你就可以在不显示输出的情况下对imshow输出进行内联处理.既然你的问题没有处理一般的情节界面,而是这个特定的界面,我不会尝试在这里实现它,但希望上面的链接应该足以让你可以实现一些东西.
>另一种方法是按照设置自己的IPython configuration environment的说明,包括一些特殊的.py文件,你自己的导入和辅助类定义等.然后在那里放置你自己的特殊绘图功能,以便在启动时加载它们并且可以在IPython的全球范围内使用.我强烈推荐这个原因有以下几个原因:(a)你实际上可以为自己的帮助函数编写单元测试,如果你愿意,甚至可以在每次启动IPython时轻松测试! (b)这使您可以更轻松地进行版本控制,并封装您经常需要的辅助函数的逻辑. (c)您可以获得“只是在那里”功能的好处,而无需使其成为魔术功能或稍后导入.

总结

以上是编程之家为你收集整理的matplotlib – iPython notebook:如何防止在imshow()上输出图像?全部内容,希望文章能够帮你解决matplotlib – iPython notebook:如何防止在imshow()上输出图像?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶