que matrices marcadores libreria graficos graficar grafica coordenadas con python matplotlib

python - matrices - Eliminar el espacio en blanco alrededor de una imagen guardada en matplotlib



python graficos 2d (5)

Necesito tomar una imagen y guardarla después de algún proceso. La figura se ve bien cuando la muestro, pero cuando guardo la figura obtuve un espacio en blanco alrededor de la imagen guardada. He probado la opción ''tight'' para el método savefig , tampoco funcionó. El código:

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()

Estoy tratando de dibujar un gráfico básico usando NetworkX en una figura y guardarlo. Me di cuenta de que sin gráficos funciona, pero cuando se agrega un gráfico obtengo un espacio en blanco alrededor de la imagen guardada;

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()



Encontré que los siguientes códigos funcionan perfectamente para el trabajo.

fig = plt.figure(figsize=[6,6]) ax = fig.add_subplot(111) ax.imshow(data) ax.axes.get_xaxis().set_visible(False) ax.axes.get_yaxis().set_visible(False) ax.set_frame_on(False) plt.savefig(''data.png'', dpi=400, bbox_inches=''tight'',pad_inches=0)


Esto funciona para mí guardar una matriz numpy trazada con imshow para archivo

import matplotlib.pyplot as plt fig = plt.figure(figsize=(10,10)) plt.imshow(img) # your image here plt.axis("off") plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0) plt.savefig("example2.png", box_inches=''tight'', dpi=100) plt.show()


No puedo afirmar que sé exactamente por qué o cómo funciona mi "solución", pero esto es lo que tenía que hacer cuando quería trazar el contorno de un par de secciones de perfil aerodinámico, sin márgenes blancos, en un archivo PDF. (Tenga en cuenta que utilicé matplotlib dentro de un cuaderno IPython, con el indicador -pylab).

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

He tratado de desactivar diferentes partes de esto, pero esto siempre lleva a un margen blanco en alguna parte. Incluso puede modificar esto para evitar que las líneas gruesas cercanas a los límites de la figura se afeiten por la falta de márgenes.