pandaları kaydedin. serinin histogram grafiğini dosyaya kaydedin


86

İpython Notebook'ta, önce bir pandas Series nesnesi oluşturun, ardından .hist () örnek yöntemini çağırarak tarayıcı şekli görüntüler.

Bu rakamı bir dosyaya nasıl kaydedeceğimi merak ediyorum (yani sağ tıklayıp farklı kaydetme değil, komut dosyasında gerekli komutlar).

Yanıtlar:


174

Figure.savefig()Yöntemi şu şekilde kullanın :

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

Bitmesi gerekmiyor pdf, birçok seçenek var. Check belgelere .

Alternatif olarak, en son oluşturulan şekli kaydetmek için pyplotarayüzü kullanabilir ve savefigişlev olarak çağırabilirsiniz :

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

7
Bu hatayı alıyorsanız AttributeError: 'numpy.ndarray' object has no attribute 'get_figure', büyük olasılıkla birden çok sütun çiziyorsunuzdur, örn s.hist(columns=['colA', 'colB']). Bu durumda, axtüm eksenlerin bir dizisi olacaktır. Deneyebilirsiniz ax[0].get_figure()veyaax[0][0].get_figure()
toto_tico

1
Art arda iki parsel saklıyorum. Ancak ilk arsanın üzerine yazılır ve ikincisi iki arsanın toplamı gibi görünür. Bu sorunu nasıl çözeceğini bilen var mı?
Capan

1
@bukowski Ekle import matplotlib.pyplot as pltve plt.close().
Acumenus

Biri bir döngü ve birden fazla figür yapıyorsa, o zaman fig.clf()rakamı temizlemek için yapılabilir.
tommy.carstensen

7

Şunları kullanabilirsiniz 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()Philip Cloud'un cevabında önerildiği gibi bunun pratik bir faydası yoktur , bu nedenle estetik açıdan en hoş bulduğunuz seçeneği seçebilirsiniz. Aslında, get_figure()basitçe şunu döndürürself.figure :

# Source from snippet linked above
def get_figure(self):
    """Return the `.Figure` instance the artist belongs to."""
    return self.figure
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.