Lưu biểu đồ trong python

Lưu biểu đồ trong python

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.

Lưu biểu đồ trong python
Tuy nhiên, việc mở rộng cửa sổ ra toàn màn hình sẽ giải quyết được vấn đề của tôi, định vị lại mọi thứ theo cách cho phép hiển thị biểu đồ.

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

Lưu biểu đồ trong python

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ưu biểu đồ trong python

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 subplotsmà 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

Lưu biểu đồ trong python

Đố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

Lưu biểu đồ trong python

Đố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

Lưu biểu đồ trong python

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ẻ

Lưu biểu đồ trong python

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Lưu biểu đồ trong python