Tôi đang xây dựng một tiện ích vẽ đồ thị nhỏ bằng cách sử dụng Pandas và MatPlotLib để phân tích cú pháp dữ liệu và xuất biểu đồ từ một máy đang làm việc.
Khi tôi xuất biểu đồ bằng cách sử dụng
plt.show[]
Tôi kết thúc với một hình ảnh không rõ ràng có truyền thuyết và nhãn hiệu chen chúc nhau như vậy.
Sau đó, tôi lưu biểu đồ thành .png như vậy
plt.savefig['sampleFileName.png']
Nhưng khi nó lưu vào hình ảnh, phiên bản toàn màn hình, chính xác của cốt truyện sẽ không được lưu mà thay vào đó là phiên bản mặc định bị lỗi.
Làm cách nào để lưu plt.show [] toàn màn hình của cốt truyện thành .png?
Tôi hy vọng tôi không quá khó hiểu.
Cảm ơn sự giúp đỡ của bạn!
- python
- pandas
- numpy
- matplotlib
- data-visualization
25 hữu ích 3 bình luận 45k xem chia sẻ
answer
44
Phương pháp bạn sử dụng để tối đa hóa kích thước cửa sổ phụ thuộc vào phần phụ trợ matplotlib mà bạn đang sử dụng. Vui lòng xem ví dụ sau để biết 3 phần mềm phụ trợ phổ biến nhất:
import matplotlib.pyplot as plt
plt.figure[]
plt.plot[[1,2], [1,2]]
# Option 1
# QT backend
manager = plt.get_current_fig_manager[]
manager.window.showMaximized[]
# Option 2
# TkAgg backend
manager = plt.get_current_fig_manager[]
manager.resize[*manager.window.maxsize[]]
# Option 3
# WX backend
manager = plt.get_current_fig_manager[]
manager.frame.Maximize[True]
plt.show[]
plt.savefig['sampleFileName.png']
Bạn có thể xác định chương trình phụ trợ bạn đang
sử dụng bằng lệnh matplotlib.get_backend[]
. Khi bạn lưu phiên bản tối đa của figure, nó sẽ lưu một hình ảnh lớn hơn như mong muốn.
44 hữu ích 5 bình luận chia sẻ
answer
8
Là một lựa chọn nữa, tôi nghĩ nó cũng đáng xem xét
plt.savefig['filename.png', bbox_inches='tight']
Điều này đặc biệt hữu ích nếu bạn đang làm
subplots
mà có các nhãn trục trông lộn xộn.
8 hữu ích 1 bình luận chia sẻ
answer
3
Đối với tất cả mọi người, những người không thể lưu cốt truyện ở chế độ toàn màn hình bằng cách sử dụng các giải pháp trên, đây là những gì thực sự hiệu quả với tôi:
figure = plt.gcf[] # get current figure
figure.set_size_inches[32, 18] # set figure's size manually to your full screen [32x18]
plt.savefig['filename.png', bbox_inches='tight'] # bbox_inches removes extra white spaces
Bạn cũng có thể muốn chơi với dpi [Độ phân giải tính bằng điểm trên inch]
plt.savefig['filename.png', bbox_inches='tight', dpi=100]
3 hữu ích 1 bình luận chia sẻ
answer
3
Đối với những người nhận được lỗi trong các câu trả lời ở trên, điều này đã hiệu quả với tôi.
#Show full screen
mng = plt.get_current_fig_manager[]
mng.full_screen_toggle[]
Đầy đủ ví dụ
fig = plt.figure[]
fig.imshow[image]
...
plt.figure[fig.number]
mng = plt.get_current_fig_manager[]
mng.full_screen_toggle[]
fig.show[]
fig.savefig['figure.png']
mng.full_screen_toggle[]
3 hữu ích 0 bình luận chia sẻ
answer
0
Tôi đã tìm thấy câu trả lời phổ biến nhất trên trang web này . Đó là một mớ bòng bong của tất cả những câu trả lời đó. Có vẻ như nó có thể được sử dụng trong mọi trường hợp mà không có vấn đề về khả năng tương thích.
Đừng ngần ngại bình luận nếu bạn gặp một số khó khăn với câu trả lời này.
# Maximise the plotting window
plot_backend = matplotlib.get_backend[]
mng = plt.get_current_fig_manager[]
if plot_backend == 'TkAgg':
mng.resize[*mng.window.maxsize[]]
elif plot_backend == 'wxAgg':
mng.frame.Maximize[True]
elif plot_backend == 'Qt4Agg':
mng.window.showMaximized[]
0 hữu ích 0 bình luận chia sẻ