/
PlotSEIR.py
63 lines (56 loc) · 1.31 KB
/
PlotSEIR.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""Simple plotter"""
import sys
import pandas as pd
import plotly as py
import plotly.graph_objects as go
df = pd.read_csv(sys.argv[1], delimiter=",")
df["new cases"] = df["exposed"].diff(1) + df["infectious"].diff(1)
fig = go.Figure()
# Add traces
fig.add_trace(
go.Scatter(
x=df["#time"],
y=df["susceptible"],
mode="lines+markers",
name="susceptible",
line=dict(color="orange"),
)
)
fig.add_trace(
go.Scatter(
x=df["#time"],
y=df["exposed"],
mode="lines+markers",
name="exposed",
line=dict(color="purple"),
)
)
fig.add_trace(go.Bar(x=df["#time"], y=df["new cases"], name="change in # affected"))
fig.add_trace(
go.Scatter(
x=df["#time"],
y=df["infectious"],
mode="lines+markers",
name="infectious",
line=dict(color="red"),
)
)
fig.add_trace(
go.Scatter(
x=df["#time"],
y=df["recovered"],
mode="lines+markers",
name="recovered",
line=dict(color="green"),
)
)
fig.add_trace(
go.Scatter(
x=df["#time"],
y=df["dead"],
mode="lines+markers",
name="dead",
line=dict(color="black"),
)
)
py.offline.plot(fig, filename=f"{sys.argv[2]}.html")