微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我和matplotlib一起使用了很多i Python笔记本,虽然很多情况下我很高兴它会在我调用imshow时自动显示图像()有时候我想阻止这种行为.

具体来说,我循环遍历一个非常大的数组,并在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)

解决方法

尝试将其移动到一个函数中,并在函数的开头执行pylab.ioff(),最后返回pylab.ion():
# 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)您可以获得“只是在那里”功能的好处,而无需使其成为魔术功能或稍后导入.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


我最近重新拾起了计算机视觉,借助Python的opencv还有face_recognition库写了个简单的图像识别demo,额外定制了一些内容,原本想打包成exe然后发给朋友,不过在这当中遇到了许多小问题,都解决了,记录一下踩过的坑。 1、Pyinstaller打包过程当中出现warning,跟d
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Pooling在中文当中的意思是“池化”,在神经网络当中非常常见,通常用的比较多的一种是Max Pooling,具体操作如下图: 结合图像理解,相信你也会大概明白其中的本意。不过Pooling并不是只可以选取2x2的窗口大小,即便是3x3,
记得大一学Python的时候,有一个题目是判断一个数是否是复数。当时觉得比较复杂不好写,就琢磨了一个偷懒的好办法,用异常处理的手段便可以大大程度帮助你简短代码(偷懒)。以下是判断整数和复数的两段小代码: 相信看到这里,你也有所顿悟,能拓展出更多有意思的方法~
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic histogram2. 数据分布与密度信息显示 Control rug and density on seaborn histogram3. 带箱形图的直方图 Histogram with a boxplot on t
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic violinplot2. 小提琴图样式自定义 Custom seaborn violinplot3. 小提琴图颜色自定义 Control color of seaborn violinplot4. 分组小提琴图 Group
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic density plot2. 核密度图的区间控制 Control bandwidth of density plot3. 多个变量的核密度图绘制 Density plot of several variables4. 边
首先 import tensorflow as tf tf.argmax(tenso,n)函数会返回tensor中参数指定的维度中的最大值的索引或者向量。当tensor为矩阵返回向量,tensor为向量返回索引号。其中n表示具体参数的维度。 以实际例子为说明: import tensorflow a
seaborn学习笔记章节 seaborn是一个基于matplotlib的Python数据可视化库。seaborn是matplotlib的高级封装,可以绘制有吸引力且信息丰富的统计图形。相对于matplotlib,seaborn语法更简洁,两者关系类似于numpy和pandas之间的关系,seabo
Python ConfigParser教程显示了如何使用ConfigParser在Python中使用配置文件。 文章目录 1 介绍1.1 Python ConfigParser读取文件1.2 Python ConfigParser中的节1.3 Python ConfigParser从字符串中读取数据
1. 处理Excel 电子表格笔记(第12章)(代码下载) 本文主要介绍openpyxl 的2.5.12版处理excel电子表格,原书是2.1.4 版,OpenPyXL 团队会经常发布新版本。不过不用担心,新版本应该在相当长的时间内向后兼容。如果你有新版本,想看看它提供了什么新功能,可以查看Open