当前位置: 首页 > 知识库问答 >
问题:

调用pylab.savefig没有显示在ipython

丌官绍元
2023-03-14

我需要在文件中创建一个图形,而不在IPython笔记本中显示它。我不清楚IPythonmatplotlib之间的相互作用。在这方面,pylab。但是,当我调用pylab时。savefig(“test.png”)除了保存在test中之外,还显示当前图形get。png。当自动创建大型打印文件集时,这通常是不可取的。或者在需要另一个应用程序进行外部处理的中间文件的情况下。

不确定这是一个matplotlib还是IPython笔记本问题。

共有2个答案

堵雅健
2023-03-14

我们不需要plt。ioff()plt。show()(如果我们使用%matplotlib inline)。您可以在不使用plt的情况下测试上述代码。ioff()<代码>plt。close()起着至关重要的作用。试试这个:

%matplotlib inline
import pylab as plt

# It doesn't matter you add line below. You can even replace it by 'plt.ion()', but you will see no changes.
## plt.ioff()

# Create a new figure, plot into it, then close it so it never gets displayed
fig = plt.figure()
plt.plot([1,2,3])
plt.savefig('test0.png')
plt.close(fig)

# Create a new figure, plot into it, then don't close it so it does get displayed
fig2 = plt.figure()
plt.plot([1,3,2])
plt.savefig('test1.png')

如果在iPython中运行此代码,它将显示第二个绘图,如果添加plt。关闭(图2)到最后,您将什么也看不到。

总之,如果您通过plt关闭图形。关闭(图),它将不会显示。

马博学
2023-03-14

这是一个matplotlib问题,您可以通过使用不向用户显示的后端来解决此问题,例如“Agg”:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

plt.plot([1,2,3])
plt.savefig('/tmp/test.png')

编辑:如果不想失去显示绘图的功能,请关闭交互模式,只调用plt。show()当您准备好显示绘图时:

import matplotlib.pyplot as plt

# Turn interactive plotting off
plt.ioff()

# Create a new figure, plot into it, then close it so it never gets displayed
fig = plt.figure()
plt.plot([1,2,3])
plt.savefig('/tmp/test0.png')
plt.close(fig)

# Create a new figure, plot into it, then don't close it so it does get displayed
plt.figure()
plt.plot([1,3,2])
plt.savefig('/tmp/test1.png')

# Display all "open" (non-closed) figures
plt.show()
 类似资料:
  • 我试图在我的网格上创建一个贴花使用three.js和反应-三纤维。我相信我正确地设置了网格和材料,但由于某种原因,贴花没有出现在画布上。 这是包含模型、背板和贴花的父组件。 这是我从. glb文件创建t恤网格的组件的一部分。网格传递回父节点,然后传递到Decal组件。 以下是我尝试设置贴花网格的方式: 我没有得到任何错误,贴花只是没有出现。我希望有人有一些见解。没有太多关于贴花几何体与3J在那里,

  • 问题内容: 我有一个图标图标,该图标在Chrome中没有显示(我不确定其他浏览器,因为我仅使用Chrome),但是奇怪的是,如果我在显示的URL栏中键入图标的路径! 为什么图标不出现? 问题答案: 快取 清除缓存。并测试其他浏览器。 有些地方可以通过添加URL参数来获取更新的网站图标:在链接href之后,它更改了资源链接,因此可以在没有缓存的情况下加载网站图标(感谢@Stanislav)。 网站图

  • 问题内容: 我有一个可以根据用户选择显示标签,图像,表格视图或不显示任何内容的地方。这是我当前的动态视图层次结构: UIStackView_Parent UILabel-一些文本,固定视图 UIStackView_Child-这是可以显示多个内容或不显示任何内容的容器 UIView-另一个固定视图 当我用标签或图像打电话时,它可以正常工作,但不显示表格。我已经根据单元格的数量将框架设置为固定高度,

  • 所以我在玩JPanel和JFrames,我注意到我创建的JPanel在添加到Jframe对象时没有显示。注意,当我在Jframe构造函数中创建了一个JPanel,并在将其添加到Jframe之前提供了JPanel参数时,它起了作用。然而,现在我使用的是我创建的JPanel对象,它不再工作了。这就是我所做的。 编辑:事实上,我想我发现了错误。JPanel有它的绘制方法,当删除时,它允许Jframe显示

  • 我试图在JavaFX中显示GridPane场景的网格线,但尽管调用了,它们还是没有显示出来。我做错了什么? 我想在程序的主菜单上显示网格线,这样我就可以知道节点在上面的位置。不幸的是,当我运行程序时,所有显示的都是一个带有单个按钮的空白屏幕。 我的主菜单课: 我的主要课程:

  • 如果查看示例页面的源代码以及该页面的Facebook调试器,您将看到Facebook刮取了正确的图像并将其显示在Facebook调试器中。这里没有奇怪的重定向或文件名,只有一个简单的图像设置为og:image,但Facebook没有显示它! 如果您直接在Facebook上复制/粘贴网址(例如,在状态更新中),og:图像会立即显示。 然而,当喜欢或评论从网站上,没有图像显示在所有! 任何帮助都将不胜