SIR模型感染人数Python可视化

近期学习基于Anylogics的SIR改进,在软件中获得了一些数据,但是在软件中的可视化效果对比不明显,故单独把部分数据处理出来绘制折线图。

数据截图如下:

总共是52行数据,第一行为字段,后面的是在不同条件下,感染人数在51天中每天的具体数量

可视化代码如下:

想画三条折线,需要给三个y值,并赋予三个数据系列

如果python识别不了你在表格里用的字体,可以用plt.rcParams['font.family'] = '',进行修改

保存图片plt.savefig()必须在plt.show()前,不然保存下来的图片是空白的

import matplotlib.pyplot as plt
import pandas as pd
# 设置Matplotlib的字体
plt.rcParams['font.family'] = 'SimSun'  # 这里使用了宋体(SimSun)字体

# df = pd.read_excel('‪C:\Users\94252\Desktop\data.xlsx')

df = pd.read_excel(r'C:\Users\94252\Desktop\data.xlsx')
import matplotlib.pyplot as plt

# 提取感染者人数的三列数据
infection1 = df['infection_num1']
infection2 = df['infection_num2']
infection3 = df['infection_num3']

x = list(range(1, 53)) # X 轴数据
y1 = infection1  # 第一个数据系列
y2 = infection2  # 第二个数据系列
y3 = infection3  # 第三个数据系列

# 创建折线图
plt.figure(figsize=(8, 6))  # 设置图形大小
plt.plot(x, y1, label='没有管控', marker='o')  # 绘制第一个数据系列的折线
plt.plot(x, y2, label='拐点前五天管控', marker='s')  # 绘制第二个数据系列的折线
plt.plot(x, y3, label='拐点后五天管控', marker='^')  # 绘制第三个数据系列的折线

plt.title('感染者人数折线图', fontproperties='SimSun')
plt.xlabel('时间', fontproperties='SimSun')
plt.ylabel('感染者人数', fontproperties='SimSun')
# 设置y轴刻度
min_y = 3000  # 设置y轴的最小值
max_y = max(max(max(y1), max(y2)), max(y3))  # 获取y轴数据的最大值
step = 500000  # 设置刻度的步长
yticks = np.arange(min_y, max_y + step, step)
plt.yticks(yticks)
plt.ylabel('感染者人数(单位:50万人)')

# 添加图例
plt.legend()
# 显示折线图
plt.grid(True)  # 添加网格线
# 调整图像分辨率(DPI)
plt.savefig('line_chart8.jpg', dpi=500)  # 保存
plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SIR模型是一种用于描述疾病传播的经典模型,其中S代表易感者、I代表感染者、R代表治愈者或免疫者。在社交网络中,SIR模型同样适用于描述信息、观点和消息的传播过程。 实现SIR模型传播的Python代码需要考虑以下几个方面: 1.节点模型:使用Python的networkx库或者其他网络模型工具,生成社交网络的节点模型。节点模型需要考虑节点之间的联通关系以及它们与观点传播相关的参数,如节点的状态。 2. 观点传播模型:将每个节点的状态定义为S、I或R。S代表易感节点,可以接收新观点,I代表感染节点,可以向其他节点传播观点,R代表已接受观点或免疫的节点。为了模拟疾病传播或观点传播的过程,还需要引入传播速率、潜伏期和恢复期等参数。 3. 传播算法:根据SIR模型,每个节点的状态会随着时间发生变化。可以使用一些常见的传播算法,例如SIS(易感-感染-易感)算法或SIR算法,模拟各个节点的状态转移过程。 4. 仿真实验:在生成节点模型、设计观点传播模型,并完成传播算法之后,可以进行仿真实验来验证模型的有效性。可以使用Python的matplotlib库来可视化仿真实验的结果。 总之,利用Python实现社交网络中的SIR模型传播,需要设计节点模型、观点传播模型和传播算法,并进行仿真实验。同时需要注意调整参数、优化算法,使得模拟结果更加准确和可信。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Re.no1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值