当前位置: 首页 > 面试题库 >

在matplotlib中删除已保存图像周围的空白

黄伟
2023-03-14
问题内容

我需要拍摄图像并经过一些处理将其保存。显示该图形时,它看起来不错,但是保存该图形后,在保存的图像周围有一些空白。我尝试过方法的'tight'选项savefig,也没有用。编码:

  import matplotlib.image as mpimg
  import matplotlib.pyplot as plt

  fig = plt.figure(1)
  img = mpimg.imread(path)
  plt.imshow(img)
  ax=fig.add_subplot(1,1,1)

  extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
  plt.savefig('1.png', bbox_inches=extent)

  plt.axis('off') 
  plt.show()

我正在尝试通过在图上使用NetworkX绘制基本图形并将其保存。我意识到没有图它会起作用,但是当添加一个图时,在保存的图像周围会出现空白;

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import networkx as nx

G = nx.Graph()
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_edge(1,3)
G.add_edge(1,2)
pos = {1:[100,120], 2:[200,300], 3:[50,75]}

fig = plt.figure(1)
img = mpimg.imread("C:\\images\\1.jpg")
plt.imshow(img)
ax=fig.add_subplot(1,1,1)

nx.draw(G, pos=pos)

extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
plt.savefig('1.png', bbox_inches = extent)

plt.axis('off') 
plt.show()

问题答案:

我不能说我确切知道我的“解决方案”为什么起作用或如何起作用,但是当我想将几个机翼截面的轮廓(没有白色边距)绘制到PDF文件时,这就是我要做的。(请注意,我在带有-
pylab标志的IPython笔记本中使用了matplotlib。)

plt.gca().set_axis_off()
plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, 
            hspace = 0, wspace = 0)
plt.margins(0,0)
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.gca().yaxis.set_major_locator(plt.NullLocator())
plt.savefig("filename.pdf", bbox_inches = 'tight',
    pad_inches = 0)

我尝试停用此功能的不同部分,但这总是在某处导致空白。您甚至可以对此进行修改,以防止由于缺乏边距而使图形附近的粗线被刮掉。



 类似资料:
  • 问题内容: 我尝试在鼠标光标位于帮助图标上时显示跨度。 它可以工作,但是尽管如此,我还是无法删除图标周围的边框。 我的CSS: 光盘 问题答案: 尝试这个: 您还可以通过以下方式限制范围并仅删除某些图像上的边框: 可以在此处找到有关border css属性的更多信息。 编辑:将边框从更改为。如注释中所述,对于的单位是多余的。

  • 问题内容: 我有一个Semilogx图,我想删除xticks。我试过了: 网格消失(确定),但仍保留小刻度线(在主刻度线的位置)。如何删除它们? 问题答案: 该方法对于这样的事情非常有用。此代码关闭主要和次要刻度线,并从x轴删除标签。

  • 问题内容: 我有一张图片,但是我还没有定义来源。它有一个边框:/ 例如: 如果提供源,则边框会消失(由于css:)。 没有来源时如何删除图片周围的边框? 问题答案: 我的建议是,如果没有src =“”将其删除,您可以 或者,如果您知道url中包含一些特殊字词(例如http),则可以执行以下操作:

  • 我试图删除文本周围的黑线(如果有)。我的目的是让图像有足够的部分来提取其中的每个字符。当我试图提取字符时,额外的黑线是噪声。 我尝试过在opencv中使用泛滥填充,但图像在左上角的黑线开始之前包含一些白色像素。所以它没有结果。我尝试通过寻找轮廓来裁剪,但即使这样也不起作用。图像如下: 并利用洪水填埋场 这两种情况的结果如下 但似乎没有什么变化 不会删除任何边框。这两个代码的思想都是从对类似问题的堆

  • 问题内容: 我该如何删除matplotlib轴的一条线(或多条线),使其实际上收集到垃圾并释放回内存?以下代码似乎删除了该行,但是从不释放内存(即使显式调用) 问题答案: 我正在展示 和结合使用的技巧。 我检查了您的大型数据集,并在系统监视器上也确认了内存的释放。 当然,更简单的方法(当不进行故障排除时)是从列表中弹出它并在不创建硬引用的情况下调用该行对象:

  • 问题内容: 我创建了一个html错误页面。它有2行显示错误。第二行链接到主页。为了使两行保持在中心,我创建了一个顶层并将网格的每一行都设为a 。我注意到,如果我用于第二行,则链接周围没有任何空格,但是如果删除,该空格将被添加,即html从变为。 如果删除属性,为什么会添加空格? 码 html CSS 问题答案: 这是因为flexbox删除或元素之间的默认空白。 这是没有flexbox的代码,其中有