lưu một con gấu trúc. âm mưu biểu đồ Series vào tệp


82

Trong ipython Notebook, trước tiên hãy tạo một đối tượng Dòng gấu trúc, sau đó bằng cách gọi phương thức thể hiện .hist (), trình duyệt sẽ hiển thị hình.

Tôi đang tự hỏi làm thế nào để lưu hình này vào một tệp (ý tôi không phải bằng cách nhấp chuột phải và lưu dưới dạng, mà là các lệnh cần thiết trong tập lệnh).

Câu trả lời:


165

Sử dụng Figure.savefig()phương pháp, như sau:

ax = s.hist()  # s is an instance of Series
fig = ax.get_figure()
fig.savefig('/path/to/figure.pdf')

Nó không cần phải kết thúc pdf, có rất nhiều lựa chọn. Kiểm tra tài liệu .

Ngoài ra, bạn có thể sử dụng pyplotgiao diện và chỉ cần gọi hàm savefigdưới dạng để lưu hình được tạo gần đây nhất:

import matplotlib.pyplot as plt
s.hist()
plt.savefig('path/to/figure.pdf')  # saves the current figure

5
nếu bạn đang nhận được lỗi này AttributeError: 'numpy.ndarray' object has no attribute 'get_figure', sau đó có khả năng là bạn đang âm mưu nhiều cột, ví dụ s.hist(columns=['colA', 'colB']). Trong trường hợp này, axsẽ là một mảng của tất cả các trục. Bạn có thể thử ax[0].get_figure()hoặcax[0][0].get_figure()
toto_tico

1
Tôi đang cứu hai mảnh đất liên tục. Nhưng nó ghi đè lên âm mưu đầu tiên và thứ hai trông giống như tổng của hai âm mưu. Có ai biết làm thế nào để giải quyết vấn đề này?
Capan

1
@bukowski Thêm import matplotlib.pyplot as pltplt.close().
Acumenus

Nếu một người đang thực hiện một vòng lặp và nhiều hình, thì người ta có thể làm fig.clf()để xóa hình.
tommy.carstensen

7

Bạn có thể sử dụng ax.figure.savefig():

import pandas as pd

s = pd.Series([0, 1])
ax = s.plot.hist()
ax.figure.savefig('demo-file.pdf')

Điều này không mang lại lợi ích thiết thực nào ax.get_figure().savefig()như được đề xuất trong câu trả lời của Philip Cloud, vì vậy bạn có thể chọn tùy chọn mà bạn thấy hài lòng nhất về mặt thẩm mỹ. Trên thực tế, get_figure()chỉ cần trả vềself.figure :

# Source from snippet linked above
def get_figure(self):
    """Return the `.Figure` instance the artist belongs to."""
    return self.figure
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.