I created a function that takes a range of values from a data set and outputs a plot. For instance:
my_plot(location_dataset, min_temperature, max_temperature)
will return a plot of precipitation for the range of temperature specified in the function.
Let's say I want to save the plot for the temperature between 60-70F in California. so, I would call my function my_plot(California, 60, 70)
and will get a plot of precipitation for California when temperatures are between 60 and 70F.
My question is: how do I save a plot that results from calling a function into a jpeg format?
I know of plt.savefig()
when it is not the result of calling a function but in my case how do I do this?
Thanks!
More details: here is my code (heavily simplified):
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()
So then I call this function as follow: my_plot(California, 60, 70)
and I get my plot for the 60-70 temperature range. how do I save this plot without having the savefig
inside the function definition (and that is because I need to change the min and max temperature parameters.
Saving a plot on your disk as an image file Now if you want to save matplotlib figures as image files programmatically, then all you need is matplotlib. pyplot. savefig() function. Simply pass the desired filename (and even location) and the figure will be stored on your disk.
pyplot. savefig() As the name suggests savefig() method is used to save the figure created after plotting data.
Save as PDF File If you want to export a graph with matplotlib, you will always call . savefig(path) .
Take the reference to the figure
to some variable, and return it from your function:
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
When you call this function, you can use the reference for saving the figure:
fig = my_plot(...)
fig.savefig("somefile.png")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With