循环中出现plt.savefig错误

西蒙

首先,我不得不说我是Python(以及编程本身)的真正初学者,因此这可能是一个愚蠢的问题,但我找不到解决方案。

我从3个不同的.csv文件加载数据,然后进行一些计算,最后我想保存3个热图。我的问题是保存。当我使用plt.savefig('whatever.jpg')它时,显然只会在循环中保存最后的热图。我尝试将其更改为,plt.savefig('{}.jpg'.format(i))但是出现错误,并且我不知道如何解决。我将不胜感激!(Anaconda的Python 3)

import seaborn as sns
import pandas as pd 
import matplotlib.pyplot as plt
%matplotlib inline

instrumenty = ['gold','sp500','dax']

for i in instrumenty:

    i = pd.read_csv(i+'_m.csv', sep=',')
    i['Miesiąc'] = pd.DatetimeIndex(i['Data']).month
    i['Rok'] = pd.DatetimeIndex(i['Data']).year
    i['Zmiana']=i['Zamkniecie'].pct_change()
    i_pt = i[1:].pivot_table(index='Rok',columns='Miesiąc',values='Zmiana')
    sns.heatmap(i_pt, linewidths=1, cmap='PiYG')
    plt.savefig('{}.png'.format(i))
    plt.clf()

错误:

   FileNotFoundError                         Traceback (most recent call last)
<ipython-input-30-5729b6a0480f> in <module>()
     14     i_pt = i[1:].pivot_table(index='Rok',columns='Miesiąc',values='Zmiana')
     15     sns.heatmap(i_pt, linewidths=1, cmap='PiYG')
---> 16     plt.savefig('{}.png'.format(i))
     17     plt.clf()
     18 

C:\Users\user\Anaconda3\lib\site-packages\matplotlib\pyplot.py in savefig(*args, **kwargs)
    694 def savefig(*args, **kwargs):
    695     fig = gcf()
--> 696     res = fig.savefig(*args, **kwargs)
    697     fig.canvas.draw_idle()   # need this if 'transparent=True' to reset colors
    698     return res

C:\Users\user\Anaconda3\lib\site-packages\matplotlib\figure.py in savefig(self, *args, **kwargs)
   1561             self.set_frameon(frameon)
   1562 
-> 1563         self.canvas.print_figure(*args, **kwargs)
   1564 
   1565         if frameon:

C:\Users\user\Anaconda3\lib\site-packages\matplotlib\backend_bases.py in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
   2230                 orientation=orientation,
   2231                 bbox_inches_restore=_bbox_inches_restore,
-> 2232                 **kwargs)
   2233         finally:
   2234             if bbox_inches and restore_bbox:

C:\Users\user\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py in print_png(self, filename_or_obj, *args, **kwargs)
    530         renderer.dpi = self.figure.dpi
    531         if is_string_like(filename_or_obj):
--> 532             filename_or_obj = open(filename_or_obj, 'wb')
    533             close = True
    534         else:

即使没有plt.savefig我也做错了,因为结果是一张带有3个图例的奇怪图表,而不是3个图。

迈克·米勒

i在此处覆盖

instrumenty = ['gold','sp500','dax']
for i in instrumenty:
    i = pd.read_csv(i+'_m.csv', sep=',')

更好地使用name

for name in instrumenty:
    # use `name`
    i = pd.read_csv(name +'_m.csv', sep=',')
    i['Miesiąc'] = pd.DatetimeIndex(i['Data']).month
    i['Rok'] = pd.DatetimeIndex(i['Data']).year
    i['Zmiana']=i['Zamkniecie'].pct_change()
    i_pt = i[1:].pivot_table(index='Rok',columns='Miesiąc',values='Zmiana')
    sns.heatmap(i_pt, linewidths=1, cmap='PiYG')
    plt.savefig('{}.png'.format(name))
    plt.clf()

这是重要的部分:

plt.savefig('{}.png'.format(name))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

set / a在循环中出现错误

在执行循环中出现错误

在执行if循环中的if else条件时,codebuild中出现错误

如何避免Postgresql的FOR循环中出现语法错误?

PHP CURL循环中出现400错误

不应在for循环中出现值错误?

在 for 循环中添加 if 语句会导致“在“}”中出现“意外的 '}””错误

简单的 for 循环中出现意外的令牌错误?

为什么在 SQL Server While 循环中出现错误?

在while循环中编辑int时在C中出现分段错误

在数据帧的简单循环中出现奇怪的不支持操作错误

为什么在低通滤波器循环中出现IndexOutOfBoundsException错误?

在foreach循环中出现“使用未分配的局部变量”错误,并返回收益

在后台将输出重定向到文件时,for循环中出现语法错误

GLSL:由于非常量表达式初始化,For循环中出现错误

如何在“ while”循环中出现错误后返回特定点

查找哈希表的值时,while循环中出现C ++分段错误

在 for 循环中出现 Dict KeyError 但实际上没有错误

使用“长度”在头文件的 For 循环中出现错误 C867

打字稿。如何避免在foreach循环中出现此错误:“算术运算的左侧必须为'any','number'或枚举类型”?

为什么在循环中调用plt.savefig()会降低性能?

Python Matplotlib:for循环中的savefig图

使用 Visual Studio 在 emgu cv 中出现 foreach 循环错误

在while循环和路由中出现IndexOutOfRange错误

循环时避免在Python中出现索引错误

在循环中从bigquery查询数据时出现错误的请求错误

在while循环中出现奇怪的情况

使div在foreach循环中出现的问题

plt.savefig 通过循环不起作用