如何解决没有图像显示在 for 循环上
def doplot(df,somenumber):
forplot = some_preprocessing_function(df,somenumber)
fig = px.line(forplot,x = 'STATS_DTTM',y = "FRME_disTRICT_CODE",color = "FRME_MEDIA",line_group="FRME_MEDIA",hover_name="FRME_MEDIA",line_dash = 'FRME_MEDIA')
return fig
在没有for循环的情况下执行该函数时,该函数成功显示了一个图像。
doplot(df,0)
检查函数生成图像后,我尝试对其进行 for 循环,以便可以看到不同参数的输出图像。
for i in range(4):
doplot(df,i)
for 循环无法创建任何图像。我发现我在绘图函数中遗漏了 fig.show()
,但我仍然无法理解为什么最后一张图像没有出现。据我了解,for 循环与下面的代码相同。
doplot(df,0)
doplot(df,1)
doplot(df,2)
doplot(df,3)
并且执行上面的代码导致最后一个代码doplot(df,3)
的输出图像。
如果是关于 for 循环,有人能解释一下我对它的误解吗?
非常感谢,
解决方法
您可以尝试在 plt.figure()
函数中使用 doplot()
,例如:
#import matplotlib.pyplot as plt
def doplot(df,somenumber):
plt.figure()
forplot = some_preprocessing_function(df,somenumber)
fig = px.line(forplot,x = 'STATS_DTTM',y = "FRME_DISTRICT_CODE",color = "FRME_MEDIA",line_group="FRME_MEDIA",hover_name="FRME_MEDIA",line_dash = 'FRME_MEDIA')
return fig
告诉我它是否适合您。
编辑(解释):所以 matplotlib
的作用是在您使用 plt.line()
或任何其他绘图函数调用它时创建一个新图形。在 for 循环中,它继续覆盖相同的数字直到循环结束,因此您最终只得到最终图而不是来自 for 循环的多个图。这就是我在将循环的函数中添加 plt.figure()
的原因,因此它每次迭代都会创建一个新图形。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。