相关疑难解决方法(0)

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

我需要拍摄一张图像并在一些过程后保存.当我显示它时,图形看起来很好,但是当我保存图形时,我在保存的图像周围有一些空白区域.我试过方法的'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()
Run Code Online (Sandbox Code Playgroud)

我试图通过在图上使用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()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

138
推荐指数
10
解决办法
11万
查看次数

指定并保存具有精确大小(以像素为单位)的图形

说我的图像大小为3841 x 7195像素.我想将图中的内容保存到磁盘,从而产生一个我指定的确切大小的图像(以像素为单位).

没有轴,没有标题.只是图像.我个人并不关心DPI,因为我只想指定图像在磁盘屏幕中所占的大小(以像素为单位).

我已经阅读了其他 主题,他们似乎都转换为英寸,然后以英寸为单位指定数字的尺寸,并以某种方式调整dpi.我想避免处理像素到英寸转换可能导致的精度损失.

我尝试过:

w = 7195
h = 3841
fig = plt.figure(frameon=False)
fig.set_size_inches(w,h)
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(im_np, aspect='normal')
fig.savefig(some_path, dpi=1)
Run Code Online (Sandbox Code Playgroud)

没有运气(Python抱怨宽度和高度必须都低于32768(?))

一切从我所看到的,matplotlib需要到指定的数字大小inchesdpi,但我只关心像素的数字发生在磁盘上.我怎样才能做到这一点?

澄清:我正在寻找一种方法matplotlib,而不是与其他图像保存库.

python matplotlib scipy

127
推荐指数
4
解决办法
13万
查看次数

在绘图和轴之间填充Matplotlib

我正在尝试使用轴和实际绘图之间的一些填充来做matplolib图.

这是我的示例代码:

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1)

x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)

plt.plot(x, y, 'r')
plt.grid(True)


plt.show()
Run Code Online (Sandbox Code Playgroud)

这就是我想要得到的:

带有x和y移位的情节

python plot matplotlib

5
推荐指数
1
解决办法
6890
查看次数

如何彻底删除散点图周围的空白区域?

我试图在图像上绘制一个散点图,周围没有任何空白区域.

如果我只绘制如下图像,那么没有空格:

fig = plt.imshow(im,alpha=alpha,extent=(0,1,1,0))
plt.axis('off')
fig.axes.axis('tight')
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)
Run Code Online (Sandbox Code Playgroud)

但是当我在图像上添加散点图时,如下所示:

fig = plt.scatter(sx, sy,c="gray",s=4,linewidths=.2,alpha=.5)
fig.axes.axis('tight')
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)
Run Code Online (Sandbox Code Playgroud)

此时,通过使用以下savefig命令,在图像周围添加了空格:

plt.savefig(im_filename,format="png",bbox_inches='tight',pad_inches=0)
Run Code Online (Sandbox Code Playgroud)

关于如何去除空白区域的任何想法?

python plot matplotlib scatter-plot imshow

3
推荐指数
1
解决办法
9338
查看次数

标签 统计

matplotlib ×4

python ×4

plot ×2

imshow ×1

scatter-plot ×1

scipy ×1