Python图形显示不正确

问题描述 投票:1回答:1

我正在尝试创建一个Python程序,该程序将全部通过CSV文件显示有关Covid-19的以下数据:

  • 每天的案件数
  • 总数]
  • 每天死亡
  • 总死亡人数
  • 我正在从文件中读取数据,并使用信息填充4个数组。我可以遍历数组并打印出数据-看起来都不错。

问题是,当我查看生成的图形时-前25个条目的数据似乎正常,然后所有行并行上升。 y轴的比例尺也是错误的-似乎重新启动了4个数据集的比例尺。

Output Graph

这里是代码:

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中创建图表时,看起来就像我期望的一样:

Excel Graph

我希望它在Python中工作.....

我正在尝试创建一个Python程序,该程序将显示所有有关CSV文件的以下有关Covid-19的数据:每天的总病例数每天的总死亡数我正在从文件中读取数据...

matplotlib graph scale
1个回答
0
投票

我从文件中读取值-并没有将它们转换为整数。在将它们追加到列表之前将它们转换为整数可以得到以下效果:

© www.soinside.com 2019 - 2024. All rights reserved.