В настоящее время я пытаюсь построить некоторые данные CSSEGISandData / COVID-19 , используя matplotlib / Python. У меня есть следующее:
#!/usr/bin/env python3
from pandas import read_csv, to_datetime
from matplotlib import pyplot
if __name__ == '__main__':
data_file = 'COVID-19/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv'
headers = [*read_csv(data_file, nrows=1)]
global_fatal = read_csv(data_file, header=0, index_col=[0,1],
infer_datetime_format=1, parse_dates=True,
usecols=[c for c in headers if c != 'Long' and c != 'Lat'])
columns = {}
for col in global_fatal.columns:
try:
columns[col] = to_datetime(col, infer_datetime_format=True)
except ValueError:
pass
global_fatal.rename(columns=columns, inplace=True)
print(global_fatal.head())
global_fatal.plot()
pyplot.show()
Но я получаю даты в виде отдельных строк вместо регионов. Я пытался использовать другие посты в этом учебнике, чтобы либо переназначить ось, когда я строю график, либо изменить способ их перетаскивания с помощью аргументов на pandas.read_csv
, но мне не удается получить данные, которые отображаются разумно (с указанием Стран в качестве линий, временных рядов / дат внизу / оси x и номера слева / оси y.
![Screenshot of plot from above code](https://i.stack.imgur.com/RsDsz.png)
Здесь вывод из функции head()
, поэтому похоже, что данные импортируются правильно:
python3 charts.py
2020-01-22 2020-01-23 2020-01-24 ... 2020-03-23 2020-03-24 2020-03-25
Province/State Country/Region ...
NaN Afghanistan 0 0 0 ... 1 1 2
Albania 0 0 0 ... 4 5 5
Algeria 0 0 0 ... 17 19 21
Andorra 0 0 0 ... 1 1 1
Angola 0 0 0 ... 0 0 0
[5 rows x 64 columns]