Khi tôi vẽ một hình bằng cách sử dụng matplotlib
làm cách nào để lưu hình mà không có thêm lề? Thông thường khi tôi lưu nó nhưLưu hình matplotlib/networkx không có lề
plt.savefig("figure.png") # or .pdf
tôi nhận được nó với một số lề:
Ví dụ:
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()
Cập nhật 2:
Các khoảng trống được đặt bên trong trục .. Điều này rõ ràng nếu tôi xóa plt.axis('off')
Vì vậy, tôi nghĩ có một số mẹo để sử dụng với gói Networkx.
Cảm ơn bạn rất nhiều. Nó hoạt động nhưng với việc loại bỏ một phần nhỏ của các giới hạn của hình. Tôi không hoàn thành hình.Vì vậy, tôi nghĩ rằng tôi chỉ cần sửa đổi nó bằng cách nào đó. – Aya
bạn có thể thử cắt giảm bảo thủ hơn (1.10 hoặc 1.05 thay vì 1.02), chỉ cần thay đổi nó cho đến khi canvas phù hợp. – nye17
Tôi vẫn thích phương pháp khác tự động sửa ranh giới. Tôi nghĩ rằng điều này sẽ xảy ra với Networkx, vì hình dạng nút – Aya