save a plot resulting from a function matplotlib python(保存由函数 matplotlib python 产生的绘图)
问题描述
我创建了一个函数,它从数据集中获取一系列值并输出一个图.例如:
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)
将返回函数中指定温度范围内的降水图.
my_plot(location_dataset, min_temperature, max_temperature)
will return a plot of precipitation for the range of temperature specified in the function.
假设我想保存加利福尼亚温度在 60-70F 之间的图.因此,我将调用我的函数 my_plot(California, 60, 70)
并在温度介于 60 和 70F 之间时获得加利福尼亚的降水图.
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.
我的问题是:如何将调用函数产生的绘图保存为 jpeg 格式?
My question is: how do I save a plot that results from calling a function into a jpeg format?
我知道 plt.savefig()
不是调用函数的结果,但在我的情况下,我该怎么做?
I know of plt.savefig()
when it is not the result of calling a function but in my case how do I do this?
谢谢!
更多细节:这是我的代码(高度简化):
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()
然后我将这个函数称为如下:my_plot(California, 60, 70)
我得到了 60-70 温度范围的图.如何在函数定义中不包含 savefig
的情况下保存此图(这是因为我需要更改最低和最高温度参数.
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.
推荐答案
将 figure
的引用指向某个变量,并从函数中返回:
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")
这篇关于保存由函数 matplotlib python 产生的绘图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:保存由函数 matplotlib python 产生的绘图
基础教程推荐
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 筛选NumPy数组 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01