2014-07-16 67 views
-1

我創建了一個函數,該函數從一個數據集中獲取一系列值並輸出一個圖。例如:保存一個由函數matplotlib產生的圖python

my_plot(location_dataset, min_temperature, max_temperature)將返回函數中指定溫度範圍的降水圖。

比方說,我想保存在加利福尼亞州60-70F溫度的情節。所以,我會打電話給我的功能my_plot(California, 60, 70),並且當溫度在60到70F之間時,會得到加利福尼亞州降水量的陰謀。

我的問題是:如何保存調用函數爲jpeg格式的結果?

我知道plt.savefig()當它不是調用函數的結果,但在我的情況下,我該怎麼做?

謝謝!

更多細節:這裏是我的代碼(大量簡化):

import matplotlib.pyplot as plt 

def my_plot(location_dataset, min_temperature, max_temperature): 
    condition = (location_dataset['temperature'] > min_temperature) & (dataset['temperature'] <= max_temperature) 
    subset = location_dataset[condition] # subset the data based on the temperature range 

    x = subset['precipitation'] # takes the precipitation column only 
    plt.figure(figsize=(8, 6)) 
    plt.plot(x) 
    plt.show() 

於是我調用該函數如下:my_plot(California, 60, 70),我得到我爲60-70溫度範圍曲線。 savefig在函數定義中沒有savefig(這是因爲我需要更改最小和最大溫度參數。)

+0

,因爲我的情節是,我調用一個函數的結果,這是否有意義,還是應該我編輯我的原創張貼? – user3495042

+0

然後分享更多的代碼。什麼'my_plot'返回?或者,將圖保存在'my_plot'函數中。 – Andy

+0

好吧,我編輯它。要回答你的問題,my_plot返回一個給出由'min_temperature'和'mx_temperature'參數指定的溫度範圍的圖。 – user3495042

回答

4

將某個變量的參考figure,並從函數中返回:

import matplotlib.pyplot as plt 

def my_plot(location_dataset, min_temperature, max_temperature): 
    condition = (location_dataset['temperature'] > min_temperature) & (dataset['temperature'] <= max_temperature) 
    subset = location_dataset[condition] # subset the data based on the temperature range 

    x = subset['precipitation'] # takes the precipitation column only 
    # N.B. referenca taken to fig 
    fig = plt.figure(figsize=(8, 6)) 
    plt.plot(x) 
    plt.show() 

    return fig 

當你調用此功能,您可以使用引用保存圖:

fig = my_plot(...) 
fig.savefig("somefile.png")