SIR 모델의 일본어 표시 (그 2)

여기에서 작성되는 그래프를 일본어화해 보았습니다.
감염병의 수학 예측 모델의 소개(SIR 모델)



sir02.py
#! /usr/bin/python

# ------------------------------------------------------------------
import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import odeint
from scipy.optimize import minimize
import  sys

# ------------------------------------------------------------------
def SIR_EQ(v, t, beta, gamma):
    return [-beta*v[0]*v[1], beta * v[0] * v[1] - gamma * v[1], gamma * v[1]]

# ------------------------------------------------------------------
sys.stderr.write("*** start ***\n")
t_max = 160
dt = 0.01

beta_const = 0.2/1000
gamma_const = 0.1


#initial_state
S_0=999
I_0=1
R_0=0
ini_state = [S_0,I_0,R_0] #[S[0], I[0], R[0]]

#numerical integration
times =np.arange(0,t_max, dt)
args  =(beta_const, gamma_const)

#R0
N_total = S_0+I_0+R_0
R0 = N_total*beta_const *(1/gamma_const)
print(R0)
sys.stderr.write("*** ccc ***\n")

#Numerical Solution using scipy.integrate
#Solver SIR model
result = odeint(SIR_EQ, ini_state, times, args)
#
#
plt.rcParams["font.family"] = "TakaoExGothic"
# plt.rcParams["font.family"] = "IPAGothic"

plt.title("基本再生産数 : {}".format(format(R0,".3f")))
plt.xlabel('日数')
plt.ylabel('人数')
plt.plot(times,result)
plt.legend(['未感染者','感染者','回復者'])
plt.show()

sys.stderr.write("*** end ***\n")
# ------------------------------------------------------------------

글꼴 지정은 TakaoExGothic 또는 IPAGothic 모두 괜찮습니다.

Arch Linux에서 확인했습니다.
$ uname -a
Linux iwata 5.6.10-arch1-1 #1 SMP PREEMPT Sat, 02 May 2020 19:11:54 +0000 x86_64 GNU/Linux
$ python --version
Python 3.8.2

좋은 웹페이지 즐겨찾기