数据可视化实验二之时间序列数据可视化

时间序列数据可视化

一、实验目的

通过实验,使学生能够掌握时变数据的可视化方法,并利用合适的图表可视化和分析时变数据的特征。

二、实验要求

通过Python中的常用图表函数调用,可视化给定的时变数据集,分析数据集的特征。

三、实验数据

数据是在世界各地的确诊COVID-19病例的累计数量,以及由此导致的死亡人数。

四、实验内容

1.确定可视化任务目标(绘制各国新冠累计确诊人数随时间的变化,以及中国累计死亡人数的日历图)
2.数据处理与变换(数据预处理,提取可视化需要的重要数据属性)
3.可视化映射与交互(标记和视觉通道的设计。折线图和日历图)
4.计算机编码实现可视化方案(利用python 的pandas扩展库读取数据,matplotlib扩展库进行可视化)
import pandas as pd
pd.read_csv(‘train.csv’)
5.利用数据可视化的功能,进行可视化分析

五、实验步骤

1.可视化设计
a)任务目标
绘制各国新冠累计确诊人数随时间的变化,以及中国累计死亡人数的日历图
b)数据预处理(所使用属性)
中国2020-01-22到2020-03-31每天确诊人数和累计死亡人数
c)可视化编码
用python
2.计算机编码实现
//中国新冠累计确诊人数随时间的变化

import datetime
import pandas as pd
from matplotlib import pyplot as plt
from matplotlib import rc

data = pd.read_csv('train.csv')

Country_Region = list(data['Country_Region'])
ConfirmedCases = list(data['ConfirmedCases'])
begin = datetime.date(2020, 1, 22)
end = datetime.date(2020, 3, 31)
final = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

for i in range(len(final)):
    final[i] = sum(ConfirmedCases[3430 + i:5741:70])
data_1 = [(str(begin + datetime.timedelta(days=i)))
          for i in range((end - begin).days + 1)]

font = {'family': 'MicroSoft YaHei',
        'weight': 'bold',
        'size': '12'}
rc("font", **font)

plt.plot(data_1, final,label='确诊人数')
plt.xticks(data_1[::7], rotation=45)
plt.title("2020年中国新冠累计确诊人数随时间的变化")
plt.legend()
plt.show()




//中国累计死亡人数的日历图
import datetime
# 导入pyecharts绘制日历图的包
from pyecharts import options as opts
from pyecharts.charts import Calendar
import pandas as pd
import random

data = pd.read_csv('train.csv')

Country_Region = list(data['Country_Region'])
Fatalities = list(data['Fatalities'])
Province_State = list(data['Province_State'])
begin = datetime.date(2020, 1, 22)
end = datetime.date(2020, 3, 31)
final = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

for i in range(len(final)):
    final[i] = sum(Fatalities[3430 + i:5741:70])
data_1 = [(str(begin + datetime.timedelta(days=i)), final[i])
          for i in range((end - begin).days + 1)]

c = (
    Calendar()
        .add("",
             data_1,
             calendar_opts=opts.CalendarOpts(
                 range_="2020",
                 daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"),
                 monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn"), )
             )
        .set_global_opts(
        title_opts=opts.TitleOpts(title="2020年新冠疫情中国死亡人数"),
        visualmap_opts=opts.VisualMapOpts(
            max_=300,
            min_=0,
            orient="horizontal",
            pos_top="230px", pos_left="100px",
        ),
    )
)

c.render_notebook()

3.数据可视化效果与分析推理
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bestkasscn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值