我正在尝试创建一个Python程序,该程序将全部通过CSV文件显示有关Covid-19的以下数据:
我正在从文件中读取数据,并使用信息填充4个数组。我可以遍历数组并打印出数据-看起来都不错。
问题是,当我查看生成的图形时-前25个条目的数据似乎正常,然后所有行并行上升。 y轴的比例尺也是错误的-似乎重新启动了4个数据集的比例尺。
这里是代码:
import csv import matplotlib.pyplot as plt from datetime import datetime #create the arrays to hold virus data caseDate, cases, casesCum, deaths, deathsCum = [], [], [], [], [] leg1 = "Cases" leg2 = "Cases - Cum" leg3 = "Deaths" leg4 = "Deaths - Cum" #open virus data file filename = 'Virus Data.csv' with open(filename) as f: reader = csv.reader(f) header_row = next(reader) #record data in arrays for row in reader: current_date = datetime.strptime(row[0], "%d/%m/%Y") caseDate.append(current_date) cases.append(row[1]) casesCum.append(row[2]) deaths.append(row[3]) deathsCum.append(row[4]) for i in range (len(cases)): print("Entry ", i, ": Cases: ", cases[i],"; Cum Cases: ", casesCum[i],"; Deaths: ", deaths[i],"; Cum Deaths: ", deathsCum[i]) #data now recorded #plot data in chart fig = plt.figure(dpi = 128, figsize=(12,6)) plt.plot(caseDate, cases, c="red", alpha=0.5) plt.plot(caseDate, casesCum, c="blue", alpha=0.5) plt.plot(caseDate, deaths, c="green", alpha = 0.5) plt.plot(caseDate, deathsCum, c="black", alpha = 0.5) #format plot title = "Covid-19 Statistics" plt.title(title, fontsize = 20) plt.xlabel("", fontsize = 16) fig.autofmt_xdate() plt.ylabel("Cases / Cum Cases / Deaths / Cum Deaths", fontsize = 12) plt.tick_params(axis='both', which='major', labelsize=16) plt.show()
它几乎在那儿,但不完全是。当我在Excel中创建图表时,看起来就像我期望的一样:
我希望它在Python中工作.....
我正在尝试创建一个Python程序,该程序将显示所有有关CSV文件的以下有关Covid-19的数据:每天的总病例数每天的总死亡数我正在从文件中读取数据...
我从文件中读取值-并没有将它们转换为整数。在将它们追加到列表之前将它们转换为整数可以得到以下效果: