एक पांडा को बचाने के लिए। फ़ाइल के लिए हिस्टोग्राम साजिश


85

Ipython नोटबुक में, पहले एक पांडा श्रृंखला ऑब्जेक्ट बनाएं, फिर इंस्टेंस विधि .hist () कॉल करके, ब्राउज़र आंकड़ा प्रदर्शित करता है।

मैं सोच रहा हूं कि इस आकृति को किसी फ़ाइल में कैसे सहेजा जाए (मेरा मतलब राइट क्लिक से नहीं और जैसा है, लेकिन स्क्रिप्ट में आवश्यक कमांड है)।

जवाबों:


173

Figure.savefig()विधि का उपयोग करें , जैसे:

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

इसमें अंत नहीं है pdf, कई विकल्प हैं। की जाँच करें प्रलेखन

वैकल्पिक रूप से, आप pyplotइंटरफ़ेस का उपयोग कर सकते हैं और savefigसबसे हाल ही में बनाई गई आकृति को बचाने के लिए फ़ंक्शन के रूप में कॉल कर सकते हैं :

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

7
यदि आपको यह त्रुटि मिल रही है AttributeError: 'numpy.ndarray' object has no attribute 'get_figure', तो संभावना है कि आप कई कॉलम की साजिश रच रहे हैं, जैसे s.hist(columns=['colA', 'colB'])। इस स्थिति में, axसभी अक्षों की एक सरणी होगी। आप कोशिश कर सकते हैं ax[0].get_figure()याax[0][0].get_figure()
toto_tico

1
मैं बार-बार दो प्लॉट बचा रहा हूं। लेकिन यह पहले प्लॉट को ओवरराइट करता है और दूसरा दो प्लॉट के योग की तरह दिखता है। क्या कोई जानता है कि इस समस्या को कैसे हल किया जाए?
कैपन

1
@bukowski जोड़ें import matplotlib.pyplot as pltऔर plt.close()
एक्यूमेनस

यदि कोई एक लूप और कई आंकड़े कर रहा है, तो fig.clf()कोई व्यक्ति आंकड़ा साफ करने के लिए कर सकता है।
tommy.carstensen

7

आप उपयोग कर सकते हैं ax.figure.savefig():

import pandas as pd

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

ax.get_figure().savefig()फिलिप क्लाउड के जवाब में सुझाव के अनुसार इसका कोई व्यावहारिक लाभ नहीं है , इसलिए आप उस विकल्प को चुन सकते हैं जिसे आप सबसे अधिक सौंदर्यवादी रूप से प्रसन्न करते हैं। वास्तव में, get_figure()बस रिटर्नself.figure :

# Source from snippet linked above
def get_figure(self):
    """Return the `.Figure` instance the artist belongs to."""
    return self.figure
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.