【发布时间】:2020-10-21 13:43:23
【问题描述】:
我创建了一个函数,该函数将 CSV 文件中的值转换为 Python 中的数据框。我已经自动化了代码,以便它制作所有国家的图表并将其保存在一个文件夹中。如果我仅通过一个国家/地区,则图表显示正常。但是,当我经过多个国家/地区时,图表会出现轴,但不会显示图表线本身。我怎样才能解决这个问题?提前致谢。这是我的代码:
import pandas as pd
import numpy as np
from pandasql import sqldf
import pandasql as pdsql
import pandasql as psql
import pandas_datareader as pdr
import matplotlib.pyplot as plt
%matplotlib inline
covid=pd.read_csv("C:/Users/Test/Desktop/covid.csv")
countries = ['Canada', 'Brazil']
for country in countries:
covid = psql.sqldf(f"select co, new_deaths from covid where co= '{country}'")
plt.figure(figsize=(15,10))
plt.grid(True)
covid['MA_5'] = covid.new_deaths.rolling(5).mean()
covid['MA_10'] = covid.new_deaths.rolling(10).mean()
plt.plot(covid['new_deaths'],label='new_deaths')
plt.plot(covid['MA_5'], label='MA 5 day')
plt.plot(covid['MA_10'], label='MA 10 day')
plt.legend(loc=2)
plt.plot(country)
plt.savefig(country+".png")
plt.show()
一个国家countries = ['Canada'] 我明白了:
https://i.stack.imgur.com/d6hC3.png
如果我像这样通过两个国家:countries = ['Canada', 'Brazil'] 我明白了:
【问题讨论】:
-
当国家是
Brazil时,你能检查你在covid中获得的有效数据吗?我怀疑查询可能会返回一个空的数据框 -
是的,我自己得到巴西的数据完全没问题。但是,如果我在国家/地区内传递多个字符串,则第一个字符串会被绘制出来,而不是其他字符串
-
我无法在我这边复制您的代码 :(。我尝试了一些随机数据,它工作正常Imgur。所以这就是我认为数据为空的原因。尝试打印@987654331 @. 或者包含a Minimal, Reproducible example,我们可以一起调试。
-
感谢您的帮助。我可以通过将 CSV 代码移入 for 循环来修复它。
标签: python matplotlib graph jupyter-notebook