Когда я рисую фигуру с помощью matplotlib
, как ее сохранить без дополнительных полей? Обычно, когда я сохранить его какСохранение рисунка matplotlib/networkx без полей
plt.savefig("figure.png") # or .pdf
я его с некоторыми полями:
Пример:
import matplotlib.pyplot as plt
import networkx as nx
G=nx.Graph()
G.add_edge('a','b',weight=1)
G.add_edge('a','c',weight=1)
G.add_edge('a','d',weight=1)
G.add_edge('a','e',weight=1)
G.add_edge('a','f',weight=1)
G.add_edge('a','g',weight=1)
pos=nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,node_size=1200,node_shape='o',node_color='0.75')
nx.draw_networkx_edges(G,pos,
width=2,edge_color='b')
plt.axis('off')
plt.savefig("degree.png", bbox_inches="tight")
plt.show()
Update 2:
Пространства устанавливаются внутри осей. Это ясно, если я удаляю plt.axis('off')
Так что я думаю, что есть какой-то трюк для использования с пакетом Networkx.
Большое спасибо. Он работает, но с удалением некоторой небольшой части пределов фигуры. Я не получу цифру.Поэтому я думаю, мне просто нужно как-то изменить его. – Aya
вы можете попробовать более консервативный разрез (1.10 или 1.05, а не 1.02), просто измените его до тех пор, пока холст не подойдет. – nye17
Я бы предпочел еще один метод, который автоматически фиксирует границы. Я думаю, что это будет с Networkx из-за формы узла – Aya